パブリック ドキュメント API の一部となる新しいクラスをライブラリに追加しました。基礎となるデータ構造はネイティブ配列ですList<T>
が、最初にネイティブ配列を生成するときに使用されます。
MSDN は、 (ネイティブ配列にアクセスするときにスローされる可能性がある)ではなく、List<T>
スローすることを示しています。ArgumentOutOfRangeException
IndexOutOfRangeException
ArgumentOutOfRangeException
したがって、次のように、ドキュメント化された API 内で一貫性を保つために常にスローするように関数を更新する予定です。
public class MyClass {
private int[] _values;
public int GetValue(int index) {
if (index < 0 || index >= _values.Length)
throw new ArgumentOutOfRangeException("index");
return _values[index];
}
}
私の質問はこれです:
上記のソースでは 2 つの範囲チェック (私の 1 つ + ネイティブ配列の 1 つ) が発生しますか、それとも .NET コンパイラはIndexOutOfRangeException
チェックを削除するほどスマートですか?