[]을 사용하는 인덱싱을 메서드 그룹 형식의 식에 적용할 수 없습니다. CS0021 해결 방법 (Compiler Error CS0021 Cannot apply indexing with [] to an expression of type method group)

'[]을 사용하는 인덱싱을 '메서드 그룹' 형식의 식에 적용할 수 없습니다.' 오류를 해결하는 방법에 대해 알아보도록 합시다. 해당 오류코드는 CS0021입니다!

Compiler Error CS0021 Cannot apply indexing with [] to an expression of type 'method group'

오류는 인덱싱을 적용할 수 없는 형식에 대괄호 []를 사용하여 시도하는 경우에 발생합니다. '메서드 그룹' 대신 '형식'과 같은 타입으로 오류가 출력되기도 합니다.

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]);                       
}

댓글