public static ReadOnlyCollection<T> AsReadOnly<T>(T[] array) {
if (array == null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
Contract.Ensures(Contract.Result<ReadOnlyCollection<T>>() != null);
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
public static void Resize<T>(ref T[] array, int newSize) {
if (newSize < 0)
- throw new ArgumentOutOfRangeException("newSize", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.newSize, ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);
Contract.Ensures(Contract.ValueAtReturn(out array) != null);
Contract.Ensures(Contract.ValueAtReturn(out array).Length == newSize);
Contract.EndContractBlock();
public unsafe static Array CreateInstance(Type elementType, int length)
{
if ((object)elementType == null)
- throw new ArgumentNullException("elementType");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.elementType);
if (length < 0)
- throw new ArgumentOutOfRangeException("length", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.length, ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);
Contract.Ensures(Contract.Result<Array>() != null);
Contract.Ensures(Contract.Result<Array>().Length == length);
Contract.Ensures(Contract.Result<Array>().Rank == 1);
RuntimeType t = elementType.UnderlyingSystemType as RuntimeType;
if (t == null)
- throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"),"elementType");
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_MustBeType, ExceptionArgument.elementType);
return InternalCreate((void*)t.TypeHandle.Value,1,&length,null);
}
public unsafe static Array CreateInstance(Type elementType, int length1, int length2)
{
if ((object)elementType == null)
- throw new ArgumentNullException("elementType");
- if (length1 < 0 || length2 < 0)
- throw new ArgumentOutOfRangeException((length1 < 0 ? "length1" : "length2"), Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.elementType);
+ if (length1 < 0)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.length1, ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);
+ if (length2 < 0)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.length2, ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);
Contract.Ensures(Contract.Result<Array>() != null);
Contract.Ensures(Contract.Result<Array>().Rank == 2);
Contract.Ensures(Contract.Result<Array>().GetLength(0) == length1);
RuntimeType t = elementType.UnderlyingSystemType as RuntimeType;
if (t == null)
- throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"),"elementType");
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_MustBeType, ExceptionArgument.elementType);
int* pLengths = stackalloc int[2];
pLengths[0] = length1;
pLengths[1] = length2;
public unsafe static Array CreateInstance(Type elementType, int length1, int length2, int length3)
{
if ((object)elementType == null)
- throw new ArgumentNullException("elementType");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.elementType);
if (length1 < 0)
- throw new ArgumentOutOfRangeException("length1", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.length1, ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);
if (length2 < 0)
- throw new ArgumentOutOfRangeException("length2", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.length2, ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);
if (length3 < 0)
- throw new ArgumentOutOfRangeException("length3", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.length3, ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);
Contract.Ensures(Contract.Result<Array>() != null);
Contract.Ensures(Contract.Result<Array>().Rank == 3);
Contract.Ensures(Contract.Result<Array>().GetLength(0) == length1);
RuntimeType t = elementType.UnderlyingSystemType as RuntimeType;
if (t == null)
- throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"), "elementType");
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_MustBeType, ExceptionArgument.elementType);
int* pLengths = stackalloc int[3];
pLengths[0] = length1;
pLengths[1] = length2;
public unsafe static Array CreateInstance(Type elementType, params int[] lengths)
{
if ((object)elementType == null)
- throw new ArgumentNullException("elementType");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.elementType);
if (lengths == null)
- throw new ArgumentNullException("lengths");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.lengths);
if (lengths.Length == 0)
- throw new ArgumentException(Environment.GetResourceString("Arg_NeedAtLeast1Rank"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_NeedAtLeast1Rank);
Contract.Ensures(Contract.Result<Array>() != null);
Contract.Ensures(Contract.Result<Array>().Rank == lengths.Length);
Contract.EndContractBlock();
RuntimeType t = elementType.UnderlyingSystemType as RuntimeType;
if (t == null)
- throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"), "elementType");
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_MustBeType, ExceptionArgument.elementType);
// Check to make sure the lenghts are all positive. Note that we check this here to give
// a good exception message if they are not; however we check this again inside the execution
// engine's low level allocation function after having made a copy of the array to prevent a
// malicious caller from mutating the array after this check.
- for (int i=0;i<lengths.Length;i++)
+ for (int i = 0; i < lengths.Length; i++)
if (lengths[i] < 0)
- throw new ArgumentOutOfRangeException("lengths["+i+']', Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
-
- fixed(int* pLengths = lengths)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.lengths, i, ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);
+
+ fixed (int* pLengths = lengths)
return InternalCreate((void*)t.TypeHandle.Value,lengths.Length,pLengths,null);
}
public static Array CreateInstance(Type elementType, params long[] lengths)
{
if( lengths == null) {
- throw new ArgumentNullException("lengths");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.lengths);
}
if (lengths.Length == 0)
- throw new ArgumentException(Environment.GetResourceString("Arg_NeedAtLeast1Rank"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_NeedAtLeast1Rank);
Contract.Ensures(Contract.Result<Array>() != null);
Contract.Ensures(Contract.Result<Array>().Rank == lengths.Length);
Contract.EndContractBlock();
for (int i = 0; i < lengths.Length; ++i)
{
long len = lengths[i];
- if (len > Int32.MaxValue || len < Int32.MinValue)
- throw new ArgumentOutOfRangeException("len", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
+ if (len > Int32.MaxValue || len < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.len, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
intLengths[i] = (int) len;
}
public unsafe static Array CreateInstance(Type elementType, int[] lengths,int[] lowerBounds)
{
if (elementType == null)
- throw new ArgumentNullException("elementType");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.elementType);
if (lengths == null)
- throw new ArgumentNullException("lengths");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.lengths);
if (lowerBounds == null)
- throw new ArgumentNullException("lowerBounds");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.lowerBounds);
if (lengths.Length != lowerBounds.Length)
- throw new ArgumentException(Environment.GetResourceString("Arg_RanksAndBounds"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_RanksAndBounds);
if (lengths.Length == 0)
- throw new ArgumentException(Environment.GetResourceString("Arg_NeedAtLeast1Rank"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_NeedAtLeast1Rank);
Contract.Ensures(Contract.Result<Array>() != null);
Contract.Ensures(Contract.Result<Array>().Rank == lengths.Length);
Contract.EndContractBlock();
RuntimeType t = elementType.UnderlyingSystemType as RuntimeType;
if (t == null)
- throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"), "elementType");
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_MustBeType, ExceptionArgument.elementType);
// Check to make sure the lenghts are all positive. Note that we check this here to give
// a good exception message if they are not; however we check this again inside the execution
// malicious caller from mutating the array after this check.
for (int i=0;i<lengths.Length;i++)
if (lengths[i] < 0)
- throw new ArgumentOutOfRangeException("lengths["+i+']', Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
-
- fixed(int* pLengths = lengths)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.lengths, i, ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);
+
+ fixed (int* pLengths = lengths)
fixed(int* pLowerBounds = lowerBounds)
return InternalCreate((void*)t.TypeHandle.Value,lengths.Length,pLengths,pLowerBounds);
}
public static void Copy(Array sourceArray, Array destinationArray, int length)
{
if (sourceArray == null)
- throw new ArgumentNullException("sourceArray");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.sourceArray);
if (destinationArray == null)
- throw new ArgumentNullException("destinationArray");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.destinationArray);
/*
Contract.Requires(sourceArray.Rank == destinationArray.Rank);
Contract.Requires(length >= 0);
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
public static void Copy(Array sourceArray, Array destinationArray, long length)
{
- if (length > Int32.MaxValue || length < Int32.MinValue)
- throw new ArgumentOutOfRangeException("length", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
+ if (length > Int32.MaxValue || length < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.length, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
Array.Copy(sourceArray, destinationArray, (int) length);
}
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
public static void Copy(Array sourceArray, long sourceIndex, Array destinationArray, long destinationIndex, long length)
{
- if (sourceIndex > Int32.MaxValue || sourceIndex < Int32.MinValue)
- throw new ArgumentOutOfRangeException("sourceIndex", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
- if (destinationIndex > Int32.MaxValue || destinationIndex < Int32.MinValue)
- throw new ArgumentOutOfRangeException("destinationIndex", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
- if (length > Int32.MaxValue || length < Int32.MinValue)
- throw new ArgumentOutOfRangeException("length", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
+ if (sourceIndex > Int32.MaxValue || sourceIndex < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.sourceIndex, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
+ if (destinationIndex > Int32.MaxValue || destinationIndex < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.destinationIndex, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
+ if (length > Int32.MaxValue || length < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.length, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
Array.Copy(sourceArray, (int) sourceIndex, destinationArray, (int) destinationIndex, (int) length);
}
public unsafe Object GetValue(params int[] indices)
{
if (indices == null)
- throw new ArgumentNullException("indices");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.indices);
if (Rank != indices.Length)
- throw new ArgumentException(Environment.GetResourceString("Arg_RankIndices"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_RankIndices);
Contract.EndContractBlock();
TypedReference elemref = new TypedReference();
public unsafe Object GetValue(int index)
{
if (Rank != 1)
- throw new ArgumentException(Environment.GetResourceString("Arg_Need1DArray"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_Need1DArray);
Contract.EndContractBlock();
TypedReference elemref = new TypedReference();
public unsafe Object GetValue(int index1, int index2)
{
if (Rank != 2)
- throw new ArgumentException(Environment.GetResourceString("Arg_Need2DArray"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_Need2DArray);
Contract.EndContractBlock();
int* pIndices = stackalloc int[2];
public unsafe Object GetValue(int index1, int index2, int index3)
{
if (Rank != 3)
- throw new ArgumentException(Environment.GetResourceString("Arg_Need3DArray"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_Need3DArray);
Contract.EndContractBlock();
int* pIndices = stackalloc int[3];
[ComVisible(false)]
public Object GetValue(long index)
{
- if (index > Int32.MaxValue || index < Int32.MinValue)
- throw new ArgumentOutOfRangeException("index", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
+ if (index > Int32.MaxValue || index < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.index, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
Contract.EndContractBlock();
return this.GetValue((int) index);
[ComVisible(false)]
public Object GetValue(long index1, long index2)
{
- if (index1 > Int32.MaxValue || index1 < Int32.MinValue)
- throw new ArgumentOutOfRangeException("index1", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
- if (index2 > Int32.MaxValue || index2 < Int32.MinValue)
- throw new ArgumentOutOfRangeException("index2", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
+ if (index1 > Int32.MaxValue || index1 < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.index1, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
+ if (index2 > Int32.MaxValue || index2 < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.index2, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
Contract.EndContractBlock();
return this.GetValue((int) index1, (int) index2);
[ComVisible(false)]
public Object GetValue(long index1, long index2, long index3)
{
- if (index1 > Int32.MaxValue || index1 < Int32.MinValue)
- throw new ArgumentOutOfRangeException("index1", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
- if (index2 > Int32.MaxValue || index2 < Int32.MinValue)
- throw new ArgumentOutOfRangeException("index2", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
- if (index3 > Int32.MaxValue || index3 < Int32.MinValue)
- throw new ArgumentOutOfRangeException("index3", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
+ if (index1 > Int32.MaxValue || index1 < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.index1, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
+ if (index2 > Int32.MaxValue || index2 < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.index2, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
+ if (index3 > Int32.MaxValue || index3 < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.index3, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
Contract.EndContractBlock();
return this.GetValue((int) index1, (int) index2, (int) index3);
public Object GetValue(params long[] indices)
{
if (indices == null)
- throw new ArgumentNullException("indices");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.indices);
if (Rank != indices.Length)
- throw new ArgumentException(Environment.GetResourceString("Arg_RankIndices"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_RankIndices);
Contract.EndContractBlock();
int[] intIndices = new int[indices.Length];
for (int i = 0; i < indices.Length; ++i)
{
long index = indices[i];
- if (index > Int32.MaxValue || index < Int32.MinValue)
- throw new ArgumentOutOfRangeException("index", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
+ if (index > Int32.MaxValue || index < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.index, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
intIndices[i] = (int) index;
}
public unsafe void SetValue(Object value,int index)
{
if (Rank != 1)
- throw new ArgumentException(Environment.GetResourceString("Arg_Need1DArray"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_Need1DArray);
Contract.EndContractBlock();
TypedReference elemref = new TypedReference();
public unsafe void SetValue(Object value,int index1, int index2)
{
if (Rank != 2)
- throw new ArgumentException(Environment.GetResourceString("Arg_Need2DArray"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_Need2DArray);
Contract.EndContractBlock();
int* pIndices = stackalloc int[2];
public unsafe void SetValue(Object value,int index1, int index2, int index3)
{
if (Rank != 3)
- throw new ArgumentException(Environment.GetResourceString("Arg_Need3DArray"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_Need3DArray);
Contract.EndContractBlock();
int* pIndices = stackalloc int[3];
public unsafe void SetValue(Object value,params int[] indices)
{
if (indices == null)
- throw new ArgumentNullException("indices");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.indices);
if (Rank != indices.Length)
- throw new ArgumentException(Environment.GetResourceString("Arg_RankIndices"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_RankIndices);
Contract.EndContractBlock();
TypedReference elemref = new TypedReference();
[ComVisible(false)]
public void SetValue(Object value, long index)
{
- if (index > Int32.MaxValue || index < Int32.MinValue)
- throw new ArgumentOutOfRangeException("index", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
+ if (index > Int32.MaxValue || index < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.index, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
Contract.EndContractBlock();
this.SetValue(value, (int) index);
[ComVisible(false)]
public void SetValue(Object value, long index1, long index2)
{
- if (index1 > Int32.MaxValue || index1 < Int32.MinValue)
- throw new ArgumentOutOfRangeException("index1", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
- if (index2 > Int32.MaxValue || index2 < Int32.MinValue)
- throw new ArgumentOutOfRangeException("index2", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
+ if (index1 > Int32.MaxValue || index1 < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.index1, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
+ if (index2 > Int32.MaxValue || index2 < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.index2, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
Contract.EndContractBlock();
this.SetValue(value, (int) index1, (int) index2);
[ComVisible(false)]
public void SetValue(Object value, long index1, long index2, long index3)
{
- if (index1 > Int32.MaxValue || index1 < Int32.MinValue)
- throw new ArgumentOutOfRangeException("index1", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
- if (index2 > Int32.MaxValue || index2 < Int32.MinValue)
- throw new ArgumentOutOfRangeException("index2", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
- if (index3 > Int32.MaxValue || index3 < Int32.MinValue)
- throw new ArgumentOutOfRangeException("index3", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
+ if (index1 > Int32.MaxValue || index1 < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.index1, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
+ if (index2 > Int32.MaxValue || index2 < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.index2, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
+ if (index3 > Int32.MaxValue || index3 < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.index3, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
Contract.EndContractBlock();
this.SetValue(value, (int) index1, (int) index2, (int) index3);
public void SetValue(Object value, params long[] indices)
{
if (indices == null)
- throw new ArgumentNullException("indices");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.indices);
if (Rank != indices.Length)
- throw new ArgumentException(Environment.GetResourceString("Arg_RankIndices"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_RankIndices);
Contract.EndContractBlock();
int[] intIndices = new int[indices.Length];
for (int i = 0; i < indices.Length; ++i)
{
long index = indices[i];
- if (index > Int32.MaxValue || index < Int32.MinValue)
- throw new ArgumentOutOfRangeException("index", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
+ if (index > Int32.MaxValue || index < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.index, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
intIndices[i] = (int) index;
}
int IList.Add(Object value)
{
- throw new NotSupportedException(Environment.GetResourceString("NotSupported_FixedSizeCollection"));
+ ThrowHelper.ThrowNotSupportedException(ExceptionResource.NotSupported_FixedSizeCollection);
+ return default(int);
}
bool IList.Contains(Object value)
void IList.Insert(int index, Object value)
{
- throw new NotSupportedException(Environment.GetResourceString("NotSupported_FixedSizeCollection"));
+ ThrowHelper.ThrowNotSupportedException(ExceptionResource.NotSupported_FixedSizeCollection);
}
void IList.Remove(Object value)
{
- throw new NotSupportedException(Environment.GetResourceString("NotSupported_FixedSizeCollection"));
+ ThrowHelper.ThrowNotSupportedException(ExceptionResource.NotSupported_FixedSizeCollection);
}
void IList.RemoveAt(int index)
{
- throw new NotSupportedException(Environment.GetResourceString("NotSupported_FixedSizeCollection"));
+ ThrowHelper.ThrowNotSupportedException(ExceptionResource.NotSupported_FixedSizeCollection);
}
// Make a new array which is a shallow copy of the original array.
Array o = other as Array;
- if (o == null || this.Length != o.Length) {
- throw new ArgumentException(Environment.GetResourceString("ArgumentException_OtherNotArrayOfCorrectLength"), "other");
+ if (o == null || this.Length != o.Length)
+ {
+ ThrowHelper.ThrowArgumentException(ExceptionResource.ArgumentException_OtherNotArrayOfCorrectLength, ExceptionArgument.other);
}
int i = 0;
int IStructuralEquatable.GetHashCode(IEqualityComparer comparer) {
if (comparer == null)
- throw new ArgumentNullException("comparer");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.comparer);
Contract.EndContractBlock();
int ret = 0;
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
public static int BinarySearch(Array array, Object value) {
if (array==null)
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
Contract.Ensures((Contract.Result<int>() >= array.GetLowerBound(0) && Contract.Result<int>() <= array.GetUpperBound(0)) || (Contract.Result<int>() < array.GetLowerBound(0) && ~Contract.Result<int>() <= array.GetUpperBound(0) + 1));
Contract.EndContractBlock();
int lb = array.GetLowerBound(0);
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
public static int BinarySearch(Array array, Object value, IComparer comparer) {
if (array==null)
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
Contract.EndContractBlock();
int lb = array.GetLowerBound(0);
return BinarySearch(array, lb, array.Length, value, comparer);
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
public static int BinarySearch(Array array, int index, int length, Object value, IComparer comparer) {
if (array==null)
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
Contract.EndContractBlock();
int lb = array.GetLowerBound(0);
- if (index < lb || length < 0)
- throw new ArgumentOutOfRangeException((index<lb ? "index" : "length"), Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+ if (index < lb)
+ ThrowHelper.ThrowIndexArgumentOutOfRange_NeedNonNegNumException();
+ if (length < 0)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.length, ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);
if (array.Length - (index - lb) < length)
- throw new ArgumentException(Environment.GetResourceString("Argument_InvalidOffLen"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Argument_InvalidOffLen);
if (array.Rank != 1)
- throw new RankException(Environment.GetResourceString("Rank_MultiDimNotSupported"));
+ ThrowHelper.ThrowRankException(ExceptionResource.Rank_MultiDimNotSupported);
if (comparer == null) comparer = Comparer.Default;
if (comparer == Comparer.Default) {
// i might overflow if lo and hi are both large positive numbers.
int i = GetMedian(lo, hi);
- int c;
+ int c = 0;
try {
c = comparer.Compare(objArray[i], value);
}
catch (Exception e) {
- throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_IComparerFailed"), e);
+ ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_IComparerFailed, e);
}
if (c == 0) return i;
if (c < 0) {
while (lo <= hi) {
int i = GetMedian(lo, hi);
- int c;
+ int c = 0;
try {
c = comparer.Compare(array.GetValue(i), value);
}
catch (Exception e) {
- throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_IComparerFailed"), e);
+ ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_IComparerFailed, e);
}
if (c == 0) return i;
if (c < 0) {
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
public static int BinarySearch<T>(T[] array, T value) {
if (array==null)
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
Contract.EndContractBlock();
return BinarySearch<T>(array, 0, array.Length, value, null);
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
public static int BinarySearch<T>(T[] array, T value, System.Collections.Generic.IComparer<T> comparer) {
if (array==null)
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
Contract.EndContractBlock();
return BinarySearch<T>(array, 0, array.Length, value, comparer);
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
public static int BinarySearch<T>(T[] array, int index, int length, T value, System.Collections.Generic.IComparer<T> comparer) {
if (array==null)
- throw new ArgumentNullException("array");
- if (index < 0 || length < 0)
- throw new ArgumentOutOfRangeException((index<0 ? "index" : "length"), Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
+ if (index < 0)
+ ThrowHelper.ThrowIndexArgumentOutOfRange_NeedNonNegNumException();
+ if (length < 0)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.length, ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);
+
if (array.Length - index < length)
- throw new ArgumentException(Environment.GetResourceString("Argument_InvalidOffLen"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Argument_InvalidOffLen);
Contract.EndContractBlock();
return ArraySortHelper<T>.Default.BinarySearch(array, index, length, value, comparer);
public static TOutput[] ConvertAll<TInput, TOutput>(TInput[] array, Converter<TInput,TOutput> converter) {
if( array == null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
if( converter == null) {
- throw new ArgumentNullException("converter");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.converter);
}
Contract.Ensures(Contract.Result<TOutput[]>() != null);
Contract.Ensures(Contract.Result<TOutput[]>().Length == array.Length);
public void CopyTo(Array array, int index)
{
if (array != null && array.Rank != 1)
- throw new ArgumentException(Environment.GetResourceString("Arg_RankMultiDimNotSupported"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_RankMultiDimNotSupported);
Contract.EndContractBlock();
// Note: Array.Copy throws a RankException and we want a consistent ArgumentException for all the IList CopyTo methods.
Array.Copy(this, GetLowerBound(0), array, index, Length);
[ComVisible(false)]
public void CopyTo(Array array, long index)
{
- if (index > Int32.MaxValue || index < Int32.MinValue)
- throw new ArgumentOutOfRangeException("index", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
+ if (index > Int32.MaxValue || index < Int32.MinValue)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.index, ExceptionResource.ArgumentOutOfRange_HugeArrayNotSupported);
Contract.EndContractBlock();
this.CopyTo(array, (int) index);
public static T Find<T>(T[] array, Predicate<T> match) {
if( array == null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
if( match == null) {
- throw new ArgumentNullException("match");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.match);
}
Contract.EndContractBlock();
public static T[] FindAll<T>(T[] array, Predicate<T> match) {
if( array == null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
if( match == null) {
- throw new ArgumentNullException("match");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.match);
}
Contract.EndContractBlock();
public static int FindIndex<T>(T[] array, Predicate<T> match) {
if (array==null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
Contract.Ensures(Contract.Result<int>() < array.Length);
Contract.EndContractBlock();
public static int FindIndex<T>(T[] array, int startIndex, Predicate<T> match) {
if (array==null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
Contract.Ensures(Contract.Result<int>() < array.Length);
Contract.EndContractBlock();
public static int FindIndex<T>(T[] array, int startIndex, int count, Predicate<T> match) {
if (array==null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
if( startIndex < 0 || startIndex > array.Length ) {
- throw new ArgumentOutOfRangeException("startIndex", Environment.GetResourceString("ArgumentOutOfRange_Index"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.startIndex, ExceptionResource.ArgumentOutOfRange_Index);
}
if (count < 0 || startIndex > array.Length - count) {
- throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_Count"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.count, ExceptionResource.ArgumentOutOfRange_Count);
}
if( match == null) {
- throw new ArgumentNullException("match");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.match);
}
Contract.Ensures(Contract.Result<int>() < array.Length);
Contract.EndContractBlock();
public static T FindLast<T>(T[] array, Predicate<T> match) {
if( array == null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
if( match == null) {
- throw new ArgumentNullException("match");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.match);
}
Contract.EndContractBlock();
public static int FindLastIndex<T>(T[] array, Predicate<T> match) {
if( array == null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
Contract.EndContractBlock();
public static int FindLastIndex<T>(T[] array, int startIndex, Predicate<T> match) {
if( array == null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
Contract.EndContractBlock();
public static int FindLastIndex<T>(T[] array, int startIndex, int count, Predicate<T> match) {
if( array == null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
if( match == null) {
- throw new ArgumentNullException("match");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.match);
}
Contract.EndContractBlock();
if(array.Length == 0) {
// Special case for 0 length List
if( startIndex != -1) {
- throw new ArgumentOutOfRangeException("startIndex", Environment.GetResourceString("ArgumentOutOfRange_Index"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.startIndex, ExceptionResource.ArgumentOutOfRange_Index);
}
}
else {
// Make sure we're not out of range
if ( startIndex < 0 || startIndex >= array.Length) {
- throw new ArgumentOutOfRangeException("startIndex", Environment.GetResourceString("ArgumentOutOfRange_Index"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.startIndex, ExceptionResource.ArgumentOutOfRange_Index);
}
}
// 2nd have of this also catches when startIndex == MAXINT, so MAXINT - 0 + 1 == -1, which is < 0.
if (count < 0 || startIndex - count + 1 < 0) {
- throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_Count"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.count, ExceptionResource.ArgumentOutOfRange_Count);
}
int endIndex = startIndex - count;
public static void ForEach<T>(T[] array, Action<T> action) {
if( array == null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
if( action == null) {
- throw new ArgumentNullException("action");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.action);
}
Contract.EndContractBlock();
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
public static int IndexOf(Array array, Object value) {
if (array==null)
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
Contract.Ensures(Contract.Result<int>() < array.GetLowerBound(0) + array.Length);
Contract.EndContractBlock();
int lb = array.GetLowerBound(0);
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
public static int IndexOf(Array array, Object value, int startIndex) {
if (array==null)
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
Contract.Ensures(Contract.Result<int>() < array.GetLowerBound(0) + array.Length);
Contract.EndContractBlock();
int lb = array.GetLowerBound(0);
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
public static int IndexOf(Array array, Object value, int startIndex, int count) {
if (array==null)
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
if (array.Rank != 1)
- throw new RankException(Environment.GetResourceString("Rank_MultiDimNotSupported"));
+ ThrowHelper.ThrowRankException(ExceptionResource.Rank_MultiDimNotSupported);
Contract.Ensures(Contract.Result<int>() < array.GetLowerBound(0) + array.Length);
Contract.EndContractBlock();
int lb = array.GetLowerBound(0);
if (startIndex < lb || startIndex > array.Length + lb)
- throw new ArgumentOutOfRangeException("startIndex", Environment.GetResourceString("ArgumentOutOfRange_Index"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.startIndex, ExceptionResource.ArgumentOutOfRange_Index);
if (count < 0 || count > array.Length - startIndex + lb)
- throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_Count"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.count, ExceptionResource.ArgumentOutOfRange_Count);
// Try calling a quick native method to handle primitive types.
int retVal;
[Pure]
public static int IndexOf<T>(T[] array, T value) {
if (array==null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
Contract.Ensures((Contract.Result<int>() < 0) ||
(Contract.Result<int>() >= 0 && Contract.Result<int>() < array.Length && EqualityComparer<T>.Default.Equals(value, array[Contract.Result<int>()])));
public static int IndexOf<T>(T[] array, T value, int startIndex) {
if (array==null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
Contract.Ensures(Contract.Result<int>() < array.Length);
Contract.EndContractBlock();
public static int IndexOf<T>(T[] array, T value, int startIndex, int count) {
if (array==null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
if (startIndex < 0 || startIndex > array.Length ) {
- throw new ArgumentOutOfRangeException("startIndex", Environment.GetResourceString("ArgumentOutOfRange_Index"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.startIndex, ExceptionResource.ArgumentOutOfRange_Index);
}
if (count < 0 || count > array.Length - startIndex) {
- throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_Count"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.count, ExceptionResource.ArgumentOutOfRange_Count);
}
Contract.Ensures(Contract.Result<int>() < array.Length);
Contract.EndContractBlock();
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
public static int LastIndexOf(Array array, Object value) {
if (array==null)
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
Contract.Ensures(Contract.Result<int>() < array.GetLowerBound(0) + array.Length);
Contract.EndContractBlock();
int lb = array.GetLowerBound(0);
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
public static int LastIndexOf(Array array, Object value, int startIndex) {
if (array == null)
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
Contract.Ensures(Contract.Result<int>() < array.GetLowerBound(0) + array.Length);
Contract.EndContractBlock();
int lb = array.GetLowerBound(0);
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
public static int LastIndexOf(Array array, Object value, int startIndex, int count) {
if (array==null)
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
Contract.Ensures(Contract.Result<int>() < array.GetLowerBound(0) + array.Length);
Contract.EndContractBlock();
int lb = array.GetLowerBound(0);
}
if (startIndex < lb || startIndex >= array.Length + lb)
- throw new ArgumentOutOfRangeException("startIndex", Environment.GetResourceString("ArgumentOutOfRange_Index"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.startIndex, ExceptionResource.ArgumentOutOfRange_Index);
if (count < 0)
- throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_Count"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.count, ExceptionResource.ArgumentOutOfRange_Count);
if (count > startIndex - lb + 1)
- throw new ArgumentOutOfRangeException("endIndex", Environment.GetResourceString("ArgumentOutOfRange_EndIndexStartIndex"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.endIndex, ExceptionResource.ArgumentOutOfRange_EndIndexStartIndex);
if (array.Rank != 1)
- throw new RankException(Environment.GetResourceString("Rank_MultiDimNotSupported"));
+ ThrowHelper.ThrowRankException(ExceptionResource.Rank_MultiDimNotSupported);
// Try calling a quick native method to handle primitive types.
int retVal;
public static int LastIndexOf<T>(T[] array, T value) {
if (array==null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
Contract.Ensures(Contract.Result<int>() < array.Length);
Contract.EndContractBlock();
public static int LastIndexOf<T>(T[] array, T value, int startIndex) {
if (array==null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
Contract.Ensures(Contract.Result<int>() < array.Length);
Contract.EndContractBlock();
public static int LastIndexOf<T>(T[] array, T value, int startIndex, int count) {
if (array==null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
Contract.Ensures(Contract.Result<int>() < array.Length);
Contract.EndContractBlock();
// accept -1 and 0 as valid startIndex for compablility reason.
//
if( startIndex != -1 && startIndex != 0) {
- throw new ArgumentOutOfRangeException("startIndex", Environment.GetResourceString("ArgumentOutOfRange_Index"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.startIndex, ExceptionResource.ArgumentOutOfRange_Index);
}
// only 0 is a valid value for count if array is empty
if( count != 0) {
- throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_Count"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.count, ExceptionResource.ArgumentOutOfRange_Count);
}
return -1;
}
// Make sure we're not out of range
if ( startIndex < 0 || startIndex >= array.Length) {
- throw new ArgumentOutOfRangeException("startIndex", Environment.GetResourceString("ArgumentOutOfRange_Index"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.startIndex, ExceptionResource.ArgumentOutOfRange_Index);
}
// 2nd have of this also catches when startIndex == MAXINT, so MAXINT - 0 + 1 == -1, which is < 0.
if (count < 0 || startIndex - count + 1 < 0) {
- throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_Count"));
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.count, ExceptionResource.ArgumentOutOfRange_Count);
}
return EqualityComparer<T>.Default.LastIndexOf(array, value, startIndex, count);
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
public static void Reverse(Array array) {
if (array==null)
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
Contract.EndContractBlock();
Reverse(array, array.GetLowerBound(0), array.Length);
}
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
public static void Reverse(Array array, int index, int length) {
if (array==null)
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
int lowerBound = array.GetLowerBound(0);
- if (index < lowerBound || length < 0)
- throw new ArgumentOutOfRangeException((index<0 ? "index" : "length"), Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+ if (index < lowerBound)
+ ThrowHelper.ThrowIndexArgumentOutOfRange_NeedNonNegNumException();
+ if (length < 0)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.length, ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);
+
if (array.Length - (index - lowerBound) < length)
- throw new ArgumentException(Environment.GetResourceString("Argument_InvalidOffLen"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Argument_InvalidOffLen);
if (array.Rank != 1)
- throw new RankException(Environment.GetResourceString("Rank_MultiDimNotSupported"));
+ ThrowHelper.ThrowRankException(ExceptionResource.Rank_MultiDimNotSupported);
Contract.EndContractBlock();
bool r = TrySZReverse(array, index, length);
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
public static void Sort(Array array) {
if (array==null)
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
Contract.EndContractBlock();
Sort(array, null, array.GetLowerBound(0), array.Length, null);
}
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
public static void Sort(Array keys, Array items) {
if (keys==null)
- throw new ArgumentNullException("keys");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.keys);
Contract.EndContractBlock();
Sort(keys, items, keys.GetLowerBound(0), keys.Length, null);
}
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
public static void Sort(Array array, IComparer comparer) {
if (array==null)
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
Contract.EndContractBlock();
Sort(array, null, array.GetLowerBound(0), array.Length, comparer);
}
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
public static void Sort(Array keys, Array items, IComparer comparer) {
if (keys==null)
- throw new ArgumentNullException("keys");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.keys);
Contract.EndContractBlock();
Sort(keys, items, keys.GetLowerBound(0), keys.Length, comparer);
}
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
public static void Sort(Array keys, Array items, int index, int length, IComparer comparer) {
if (keys==null)
- throw new ArgumentNullException("keys");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.keys);
if (keys.Rank != 1 || (items != null && items.Rank != 1))
- throw new RankException(Environment.GetResourceString("Rank_MultiDimNotSupported"));
+ ThrowHelper.ThrowRankException(ExceptionResource.Rank_MultiDimNotSupported);
int keysLowerBound = keys.GetLowerBound(0);
if (items != null && keysLowerBound != items.GetLowerBound(0))
- throw new ArgumentException(Environment.GetResourceString("Arg_LowerBoundsMustMatch"));
- if (index < keysLowerBound || length < 0)
- throw new ArgumentOutOfRangeException((length<0 ? "length" : "index"), Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_LowerBoundsMustMatch);
+ if (index < keysLowerBound)
+ ThrowHelper.ThrowIndexArgumentOutOfRange_NeedNonNegNumException();
+ if (length < 0)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.length, ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);
+
if (keys.Length - (index - keysLowerBound) < length || (items != null && (index - keysLowerBound) > items.Length - length))
- throw new ArgumentException(Environment.GetResourceString("Argument_InvalidOffLen"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Argument_InvalidOffLen);
Contract.EndContractBlock();
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
public static void Sort<T>(T[] array) {
if (array==null)
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
Contract.EndContractBlock();
Sort<T>(array, 0, array.Length, null);
}
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
public static void Sort<TKey, TValue>(TKey[] keys, TValue[] items) {
if (keys==null)
- throw new ArgumentNullException("keys");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.keys);
Contract.EndContractBlock();
Sort<TKey, TValue>(keys, items, 0, keys.Length, null);
}
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
public static void Sort<T>(T[] array, System.Collections.Generic.IComparer<T> comparer) {
- if (array==null)
- throw new ArgumentNullException("array");
+ if (array == null)
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
Contract.EndContractBlock();
Sort<T>(array, 0, array.Length, comparer);
}
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
public static void Sort<TKey, TValue>(TKey[] keys, TValue[] items, System.Collections.Generic.IComparer<TKey> comparer) {
if (keys==null)
- throw new ArgumentNullException("keys");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.keys);
Contract.EndContractBlock();
Sort<TKey, TValue>(keys, items, 0, keys.Length, comparer);
}
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
public static void Sort<T>(T[] array, int index, int length, System.Collections.Generic.IComparer<T> comparer) {
if (array==null)
- throw new ArgumentNullException("array");
- if (index < 0 || length < 0)
- throw new ArgumentOutOfRangeException((length<0 ? "length" : "index"), Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
+ if (index < 0)
+ ThrowHelper.ThrowIndexArgumentOutOfRange_NeedNonNegNumException();
+ if (length < 0)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.length, ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);
if (array.Length - index < length)
- throw new ArgumentException(Environment.GetResourceString("Argument_InvalidOffLen"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Argument_InvalidOffLen);
Contract.EndContractBlock();
if (length > 1) {
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
public static void Sort<TKey, TValue>(TKey[] keys, TValue[] items, int index, int length, System.Collections.Generic.IComparer<TKey> comparer) {
if (keys==null)
- throw new ArgumentNullException("keys");
- if (index < 0 || length < 0)
- throw new ArgumentOutOfRangeException((length<0 ? "length" : "index"), Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.keys);
+ if (index < 0)
+ ThrowHelper.ThrowIndexArgumentOutOfRange_NeedNonNegNumException();
+ if (length < 0)
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.length, ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);
if (keys.Length - index < length || (items != null && index > items.Length - length))
- throw new ArgumentException(Environment.GetResourceString("Argument_InvalidOffLen"));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Argument_InvalidOffLen);
Contract.EndContractBlock();
if (length > 1) {
public static void Sort<T>(T[] array, Comparison<T> comparison) {
if( array == null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
if( comparison == null) {
- throw new ArgumentNullException("comparison");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.comparison);
}
Contract.EndContractBlock();
public static bool TrueForAll<T>(T[] array, Predicate<T> match) {
if( array == null) {
- throw new ArgumentNullException("array");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
}
if( match == null) {
- throw new ArgumentNullException("match");
+ ThrowHelper.ThrowArgumentNullException(ExceptionArgument.match);
}
Contract.EndContractBlock();
}
catch (IndexOutOfRangeException)
{
- throw new ArgumentException(Environment.GetResourceString("Arg_BogusIComparer", comparer));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_BogusIComparer, ExceptionArgument.comparer);
}
catch (Exception e)
{
- throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_IComparerFailed"), e);
+ ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_IComparerFailed, e);
}
}
}
catch (Exception e)
{
- throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_IComparerFailed"), e);
+ ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_IComparerFailed, e);
}
Object x = keys[middle];
do
}
catch (IndexOutOfRangeException)
{
- throw new ArgumentException(Environment.GetResourceString("Arg_BogusIComparer", comparer));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_BogusIComparer, ExceptionArgument.comparer);
}
catch (Exception e)
{
- throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_IComparerFailed"), e);
+ ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_IComparerFailed, e);
}
Contract.Assert(i >= left && j <= right, "(i>=left && j<=right) Sort failed - Is your IComparer bogus?");
if (i > j) break;
}
catch (Exception e)
{
- throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_IComparerFailed"), e);
+ ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_IComparerFailed, e);
}
}
}
catch (IndexOutOfRangeException)
{
- throw new ArgumentException(Environment.GetResourceString("Arg_BogusIComparer", comparer));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_BogusIComparer, ExceptionArgument.comparer);
}
catch (Exception e)
{
- throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_IComparerFailed"), e);
+ ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_IComparerFailed, e);
}
}
}
catch (Exception e)
{
- throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_IComparerFailed"), e);
+ ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_IComparerFailed, e);
}
Object x = keys.GetValue(middle);
}
catch (IndexOutOfRangeException)
{
- throw new ArgumentException(Environment.GetResourceString("Arg_BogusIComparer", comparer));
+ ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_BogusIComparer, ExceptionArgument.comparer);
}
catch (Exception e)
{
- throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_IComparerFailed"), e);
+ ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_IComparerFailed, e);
}
Contract.Assert(i >= left && j <= right, "(i>=left && j<=right) Sort failed - Is your IComparer bogus?");
if (i > j) break;
}
catch (Exception e)
{
- throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_IComparerFailed"), e);
+ ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_IComparerFailed, e);
}
}
public Object Current {
get {
- if (_index < 0) throw new InvalidOperationException(Environment.GetResourceString(ResId.InvalidOperation_EnumNotStarted));
- if (_index >= _endIndex) throw new InvalidOperationException(Environment.GetResourceString(ResId.InvalidOperation_EnumEnded));
+ if (_index < 0) ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_EnumNotStarted);
+ if (_index >= _endIndex) ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_EnumEnded);
return _array.GetValue(_index);
}
}
public Object Current {
get {
- if (index < startIndex) throw new InvalidOperationException(Environment.GetResourceString(ResId.InvalidOperation_EnumNotStarted));
- if (_complete) throw new InvalidOperationException(Environment.GetResourceString(ResId.InvalidOperation_EnumEnded));
+ if (index < startIndex) ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_EnumNotStarted);
+ if (_complete) ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_EnumEnded);
return array.GetValue(_indices);
}
}
void Add<T>(T value) {
// Not meaningful for arrays.
- throw new NotSupportedException(Environment.GetResourceString("NotSupported_FixedSizeCollection"));
+ ThrowHelper.ThrowNotSupportedException(ExceptionResource.NotSupported_FixedSizeCollection);
}
[SecuritySafeCritical]
void Clear<T>() {
//! Warning: "this" is an array, not an SZArrayHelper. See comments above
//! or you may introduce a security hole!
- throw new NotSupportedException(Environment.GetResourceString("NotSupported_ReadOnlyCollection"));
+
+ ThrowHelper.ThrowNotSupportedException(ExceptionResource.NotSupported_ReadOnlyCollection);
}
[SecuritySafeCritical]
void Insert<T>(int index, T value) {
// Not meaningful for arrays
- throw new NotSupportedException(Environment.GetResourceString("NotSupported_FixedSizeCollection"));
+ ThrowHelper.ThrowNotSupportedException(ExceptionResource.NotSupported_FixedSizeCollection);
}
bool Remove<T>(T value) {
// Not meaningful for arrays
- throw new NotSupportedException(Environment.GetResourceString("NotSupported_FixedSizeCollection"));
+ ThrowHelper.ThrowNotSupportedException(ExceptionResource.NotSupported_FixedSizeCollection);
+ return default(bool);
}
void RemoveAt<T>(int index) {
// Not meaningful for arrays
- throw new NotSupportedException(Environment.GetResourceString("NotSupported_FixedSizeCollection"));
+ ThrowHelper.ThrowNotSupportedException(ExceptionResource.NotSupported_FixedSizeCollection);
}
// This is a normal generic Enumerator for SZ arrays. It doesn't have any of the "this" stuff
public T Current {
get {
- if (_index < 0) throw new InvalidOperationException(Environment.GetResourceString(ResId.InvalidOperation_EnumNotStarted));
- if (_index >= _endIndex) throw new InvalidOperationException(Environment.GetResourceString(ResId.InvalidOperation_EnumEnded));
+ if (_index < 0) ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_EnumNotStarted);
+ if (_index >= _endIndex) ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_EnumEnded);
return _array[_index];
}
}