이 코드 예제를보고하고 new()
제약의 목적이 무엇인지 궁금 : "새 '제약 조건"이라고new() 제약 조건은 클래스 정의에서 무엇을합니까?
public class Client<T> : IClient where T : IClientFactory, new()
{
public Client(int UserID){ }
}
이 코드 예제를보고하고 new()
제약의 목적이 무엇인지 궁금 : "새 '제약 조건"이라고new() 제약 조건은 클래스 정의에서 무엇을합니까?
public class Client<T> : IClient where T : IClientFactory, new()
{
public Client(int UserID){ }
}
. 그것에 Here's the documentation.
새로운 제약은 제네릭 클래스 선언에서 모든 유형의 인수가 공공 매개 변수가없는 생성자이 있어야 함을 지정합니다. 새 제약 조건을 사용하려면 유형을 추상화 할 수 없습니다.
(강조 광산) 기본적으로
당신이 클래스의 어딘가에 새로운 T
을 만들 때마다, 당신은 당신이 일에 이을 할 수있는 컴파일러를 통과 할 경우에만 수 있는지 확인하기 위해 필요 의 새 인스턴스를 만듭니다.
Client
은 T
개체의 모음이고 T
개체는 IClientFactory
인터페이스를 구현하고 매개 변수없는 public 생성자를 가져야합니다. 새로운
는() 형식 인수가 공공 매개 변수가없는 생성자가 있어야합니다
의미한다. 이 다른 제약 조건과 함께 사용되는 경우 new() 제약 조건은 이어야합니다.