제네릭 클래스에 대한 기본 생성자를 구현하는 것이 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;
}
}