如何通过传入类型返回具有泛型类型的类
本文关键字:泛型类型 返回 何通过 类型 | 更新日期: 2023-09-27 17:53:20
我有一个使用泛型类型的类
public class BaseClass<T> {
public T Data { get; set; }
public BaseClass(T data) {
this.Data = data;
}
public BaseClass() { }
}
我想创建一个返回BaseClass<T>
对象的方法,所以我正在尝试:
public BaseClass<T> NoData() {
return new BaseClass<T>(null);
}
用return NoData<MyTClass>();
来命名我得到一个错误的<T>
, The type or namespace 'T' cannot be found
可以在c#中实现吗?谢谢!
您只需要在方法名中添加一个泛型参数:
public BaseClass<T> NoData<T>() {
return new BaseClass<T>(null);
}
但是由于您没有指定T
是一个类,您需要使用更通用的default(T)
:
public BaseClass<T> NoData<T>() {
return new BaseClass<T>(default(T));
}
因为你有一个默认的构造函数,基本上做同样的事情你也可以这样做:
public BaseClass<T> NoData<T>() {
return new BaseClass<T>();
}