'[]을 사용하는 인덱싱을 '메서드 그룹' 형식의 식에 적용할 수 없습니다.' 오류를 해결하는 방법에 대해 알아보도록 합시다. 해당 오류코드는 CS0021입니다!
오류는 인덱싱을 적용할 수 없는 형식에 대괄호 []를 사용하여 시도하는 경우에 발생합니다. '메서드 그룹' 대신 '형식'과 같은 타입으로 오류가 출력되기도 합니다.
CS0021 해결 방법 : 인덱싱 적용 여부 확인하기
인덱싱이 가능한지 다시 확인해 주세요. 해당 형식이 배열과 같이 대괄호를 통해 인덱싱이 되는지 살펴보면 해결할 수 있습니다. 보통 다음의 예제와 같이 인덱싱이 가능할 때에 오류가 발생하지 않습니다. 소괄호(parentheses)나 중괄호(brace)를 입력해야 할 곳에 대괄호(brackets)를 혹시 입력하지 않으셨나요?
class Collection<T>
{
private T[] arr = new T[10];
public T this[int i] => arr[i];
public void Add(int index, T value)
{
if (index >= arr.Length)
throw new IndexOutOfRangeException($"인덱스가 배열 범위를 초과하였습니다. 배열 범위 : {arr.Length}");
arr[index] = value;
}
}
public void BeomSang()
{
Collection<string> collection = new Collection<string>();
collection.Add(0, "인덱싱이 가능합니다.");
//인덱싱이 가능합니다.
Debug.WriteLine(collection[0]);
}