你必须定义 T 可以有 new()
private List<T> CastGenericToEF<T>(List<GenericClass> GenericList) where T: new()
{
List<T> Target = new List<T>();
foreach (var generic in GenericList)
{
//How can I do to create an Instance of T?
var tInstance = new T();
// Some proccess here
var typeOf = typeof(T);
}
return Target;
}
要访问 T 的属性/方法,您必须以某种方式指定它的类型。如果没有规范,T 可以是任何东西......
以下示例在某处定义了一个接口,然后指定 T 必须实际实现该接口。如果你这样做
interface IGenericClass
{
void SomeMethod();
}
您可以访问接口定义的属性或方法
private List<T> CastGenericToEF<T>(List<GenericClass> GenericList) where T : IGenericClass, new()
{
List<T> Target = new List<T>();
foreach (var generic in GenericList)
{
//How can I do to create an Instance of T?
var tInstance = new T();
tInstance.SomeMethod();
// Some proccess here
var typeOf = typeof(T);
}
return Target;
}