반응형
C #의 제네릭-인수를 사용하여 변수 유형의 인스턴스를 어떻게 만들 수 있습니까?
이 질문에 이미 답변이 있습니다.
제네릭 유형으로 개체를 인스턴스화하려는 제네릭 클래스가 있습니다. 형식 생성자에 대한 인수를 사용하고 싶습니다.
내 코드 :
public class GenericClass<T> where T : Some_Base_Class, new()
{
public static T SomeFunction(string s)
{
if (String.IsNullOrEmpty(s))
return new T(some_param);
}
}
에 오류가 발생합니다.
new T(some_param)
'T': 변수 유형의 인스턴스를 만들 때 인수를 제공 할 수 없습니다.
어떻게 할 수 있습니까?
를보세요 Activator.CreateInstance
. 예를 들면 :
var instance = Activator.CreateInstance(typeof(T), new object[] { null, null });
분명히 null
s를 유형의 생성자 중 하나에서 예상하는 적절한 값으로 대체합니다 .
에 대한 컴파일러 오류가 발생 cannot convert object to type T
하면 다음을 포함하십시오 as T
.
var instance = Activator.CreateInstance(typeof(T),
new object[] { null, null }) as T;
반응형
'Program Tip' 카테고리의 다른 글
중첩 된 Try / Catch 블록이 나쁜 생각입니까? (0) | 2020.10.19 |
---|---|
git이 특정 반환 오류 코드를 반환합니까? (0) | 2020.10.19 |
Scala를위한 간단하고 간결한 HTTP 클라이언트 라이브러리 (0) | 2020.10.19 |
Mac OS X에서 대용량 파일 편집 (0) | 2020.10.18 |
.NET 위임 유형에 대한 적절한 명명 규칙? (0) | 2020.10.18 |