나는 다음과 같은 C# 테스트 코드가 있습니다C# : 생성자가있는 일반 유형?
class MyItem
{
MyItem(int a) {}
}
class MyContainer<T>
where T : MyItem, new()
{
public void CreateItem()
{
T oItem = new T(10);
}
}
스튜디오를 컴파일 할 수 없습니다 비주얼 오류가 사용되는 경우 '새로운'라인에 있습니다 :
'T': cannot provide arguments when creating an instance of a variable type
가에 C#으로 가능 매개 변수가없는 생성자를 사용하여 제네릭 형식의 개체를 만드시겠습니까? C++에서 그런 것을하는 것은 문제가되지 않습니다. 그래서 나는 C#에서 똑같은 일을 할 수없는 이유가 궁금합니다. 어쩌면 추가 'where'가 필요하거나 구문이 다른 것일까 요?
필자가 기억 하듯'new()'제약 조건은'Activator.CreateInstance()'호출로 해석됩니다. –