C# 如何通过传入泛型类型来返回泛型类型的类

C# 如何通过传入泛型类型来返回泛型类型的类,c#,generics,C#,Generics,我有一个使用泛型类型的类 public class BaseClass<T> { public T Data { get; set; } public BaseClass(T data) { this.Data = data; } public BaseClass() { } } 公共类基类{ 公共T数据{get;set;} 公共基类(T数据){ 这个。数据=数据; } 公共基类(){} } 我想创建一个返回基类对象的方法,因此我尝试以下方法: publi

我有一个使用泛型类型的类

public class BaseClass<T> {
  public T Data { get; set; }
  public BaseClass(T data) {
    this.Data = data;
  }
  public BaseClass() { }
}
公共类基类{
公共T数据{get;set;}
公共基类(T数据){
这个。数据=数据;
}
公共基类(){}
}
我想创建一个返回
基类
对象的方法,因此我尝试以下方法:

public BaseClass<T> NoData() {
  return new BaseClass<T>(null);
}
公共基类NoData(){
返回新的基类(null);
}
并用类似于
return NoData()的东西调用它

我发现
有一个错误,
找不到类型或命名空间“T”


在c#中可以这样做吗?谢谢

您只需向方法名称添加一个泛型参数:

public BaseClass<T> NoData<T>() {
  return new BaseClass<T>(null);
}
由于您有一个默认构造函数,它基本上做相同的事情,因此您也可以这样做:

public BaseClass<T> NoData<T>() {
  return new BaseClass<T>();
}
公共基类NoData(){
返回新的基类();
}

您只需在方法名称中添加一个通用参数:

public BaseClass<T> NoData<T>() {
  return new BaseClass<T>(null);
}
由于您有一个默认构造函数,它基本上做相同的事情,因此您也可以这样做:

public BaseClass<T> NoData<T>() {
  return new BaseClass<T>();
}
公共基类NoData(){
返回新的基类();
}

但由于T可以是任何类型:返回新的基类(默认值(T));但由于T可以是任何类型:返回新的基类(默认值(T));