C# 如何在不指定类型的情况下对泛型类调用静态方法?
我有一个类是泛型的,如下所示:C# 如何在不指定类型的情况下对泛型类调用静态方法?,c#,.net,generics,C#,.net,Generics,我有一个类是泛型的,如下所示: public class MyClass<T> { public void SetValue(T value){...} public T GetValue(){...} public static void ClearAll(){...} } MyClass<object>.Clear(); 编译器抱怨说 使用泛型类型“MyClass”需要1个类型参数 我可以这样称呼它: public class MyC
public class MyClass<T>
{
public void SetValue(T value){...}
public T GetValue(){...}
public static void ClearAll(){...}
}
MyClass<object>.Clear();
编译器抱怨说
使用泛型类型“MyClass”需要1个类型参数
我可以这样称呼它:
public class MyClass<T>
{
public void SetValue(T value){...}
public T GetValue(){...}
public static void ClearAll(){...}
}
MyClass<object>.Clear();
MyClass.Clear();
我觉得多余的
不必要地把代码弄乱了。但是,我不能简单地从类声明中删除
,因为无法从GetValue()
方法中的用法推断t
。是否有某种方法来定义类,使得公共静态方法不需要类型参数 您可以创建一个具有相同名称但没有类型参数的单独类
请注意,类型参数是类标识的一部分。如果您试图清除类的所有类型参数化版本中的所有字段,这是不可能的。您可以创建一个具有相同名称但没有类型参数的单独类 请注意,类型参数是类标识的一部分。如果您试图清除类的所有类型参数化版本中的所有字段,那么这是不可能的