[c#] 제네릭 클래스의 기본 생성자의 구문은 무엇입니까?

제네릭 클래스에 대한 기본 생성자를 구현하는 것이 C #에서 금지되어 있습니까?

그렇지 않은 경우 아래 코드가 컴파일되지 않는 이유는 무엇입니까? (내가 제거 <T>하면 컴파일됩니다)

제네릭 클래스에 대한 기본 생성자를 정의하는 올바른 방법은 무엇입니까?

public class Cell<T>
{
    public Cell<T>()
    {
    }
}

컴파일 시간 오류 : 오류 1 클래스, 구조체 또는 인터페이스 멤버 선언의 잘못된 토큰 ‘(‘



답변

생성자에 유형 매개 변수를 제공하지 않습니다. 이것이 당신이 그것을해야하는 방법입니다.

public class Cell<T>
{
    public Cell()
    {
    }
}


답변

유형이 속성으로 필요한 경우 :

public class Cell<T>
{
    public Cell()
    {
        TheType = typeof(T);
    }

    public Type TheType { get;}
}


답변

그리고 유형의 인스턴스를 삽입해야하는 경우 :

public class Cell<T>
{
    public T Thing { get; }

    public Cell(T thing)
    {
        Thing = thing;
    }
}


답변