Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Reverse() [2/2]

static void System.Array.Reverse ( Array array,
int index,
int length )
inlinestatic

Definition at line 2216 of file Array.cs.

2217 {
2218 if (array == null)
2219 {
2220 ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array);
2221 }
2222 int lowerBound = array.GetLowerBound(0);
2223 if (index < lowerBound)
2224 {
2225 ThrowHelper.ThrowIndexArgumentOutOfRange_NeedNonNegNumException();
2226 }
2227 if (length < 0)
2228 {
2229 ThrowHelper.ThrowLengthArgumentOutOfRange_ArgumentOutOfRange_NeedNonNegNum();
2230 }
2231 if (array.Length - (index - lowerBound) < length)
2232 {
2233 ThrowHelper.ThrowArgumentException(ExceptionResource.Argument_InvalidOffLen);
2234 }
2235 if (array.Rank != 1)
2236 {
2237 ThrowHelper.ThrowRankException(ExceptionResource.Rank_MultiDimNotSupported);
2238 }
2239 if (length <= 1)
2240 {
2241 return;
2242 }
2244 switch (array.GetCorElementTypeOfElementType())
2245 {
2246 case CorElementType.ELEMENT_TYPE_BOOLEAN:
2247 case CorElementType.ELEMENT_TYPE_I1:
2248 case CorElementType.ELEMENT_TYPE_U1:
2250 return;
2251 case CorElementType.ELEMENT_TYPE_CHAR:
2252 case CorElementType.ELEMENT_TYPE_I2:
2253 case CorElementType.ELEMENT_TYPE_U2:
2255 return;
2256 case CorElementType.ELEMENT_TYPE_I4:
2257 case CorElementType.ELEMENT_TYPE_U4:
2258 case CorElementType.ELEMENT_TYPE_R4:
2260 return;
2261 case CorElementType.ELEMENT_TYPE_I8:
2262 case CorElementType.ELEMENT_TYPE_U8:
2263 case CorElementType.ELEMENT_TYPE_R8:
2264 case CorElementType.ELEMENT_TYPE_I:
2265 case CorElementType.ELEMENT_TYPE_U:
2267 return;
2268 case CorElementType.ELEMENT_TYPE_ARRAY:
2269 case CorElementType.ELEMENT_TYPE_OBJECT:
2270 case CorElementType.ELEMENT_TYPE_SZARRAY:
2272 return;
2273 }
2274 int num = index;
2275 int num2 = index + length - 1;
2276 while (num < num2)
2277 {
2278 object value = array.GetValue(num);
2279 array.SetValue(array.GetValue(num2), num);
2280 array.SetValue(value, num2);
2281 num++;
2282 num2--;
2283 }
2284 }

References System.array, System.index, System.length, System.ThrowHelper.ThrowArgumentException(), System.ThrowHelper.ThrowArgumentNullException(), System.ThrowHelper.ThrowIndexArgumentOutOfRange_NeedNonNegNumException(), System.ThrowHelper.ThrowLengthArgumentOutOfRange_ArgumentOutOfRange_NeedNonNegNum(), System.ThrowHelper.ThrowRankException(), and System.value.