innexoutofRangexception 및 ArgumentOutOfRangeXception 에서 C#의 인덱싱을 통해 배열 또는 수집 프로젝트에 액세스하려고 할 때 인덱스가 유효하지 않으면 이상이 발생할 수 있습니다. 이는 인덱스가 하한보다 작거나 상한과 동일하다는 것을 의미합니다.
경우에 따라 인덱싱 된 인터뷰가 컬렉션의 범위를 초과하거나 또는 에센스와 같은 함수를 사용하는 경우
비정상적인 던지기의 타이밍
유효 범위를 넘어 인덱스를 사용하여 (배열의 경우, 일반적으로 0에서 길이 -1) 배열 또는 세트 요소에 액세스하십시오.
다차원 배열을 사용할 때는 총 길이뿐만 아니라 각 차원의 길이를 확인해야합니다.
배열은 동적으로 성장하지 않으므로 길이를 초과하는 요소에 액세스하려고하면 이상이 발생합니다.
배열의 유효 인덱스 범위는 사용자 정의에서 변경 될 수 있습니다. IndexOutOfRangeException
배열이 비어 있고 요소에 액세스하려고하면
가 트리거됩니다.
잘못된 이름의 잘못 일치하지 않는 인덱싱 계산은 잘못된 상태로 트리거 될 수 있습니다. FindIndex()
GetOrdinal()
피하는 방법
입력 매개 변수를 확인하여 효과적인 인덱스를 나타냅니다.
인덱스를 사용하기 전에, 특히 외부 데이터 소스에서 데이터를 수정할 때 객체 상태를 확인하십시오.
일치를 찾을 수없는 상황을 처리하려면 또는 와 같은 함수의 반환 값을 확인하십시오.
는 어설 션 또는 코드 계약을 사용하여 불변의 물체를 보장하고 개발 중에 잠재적 인덱스 오류를 식별합니다.
디버그하는 방법
액세스 할 수있는 배열 또는 컬렉션을 식별하려면 비정상적인 선 주변의 코드를 확인하십시오.
인덱스 변수의 값을 확인하여 예상 범위 내에 있는지 확인하십시오.
인덱스가 사용자 입력에서 나오면 철저히 확인하십시오.
인덱스가 객체 상태에서 나오면 인덱스 계산 전에 상태의 유효성을 확인하십시오.
디버거를 사용하여 코드를 점차적으로 실행하고 변수 및 인덱스에 의해 계산 된 값을 관찰하십시오. IndexOutOfRangeException
위 내용은 C#의 IndexOutOfRangeException 및 ArgumentOutOfRangeException의 원인은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!