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
。是否有某种方法来定义类,使得公共静态方法不需要类型参数

您可以创建一个具有相同名称但没有类型参数的单独类


请注意,类型参数是类标识的一部分。如果您试图清除类的所有类型参数化版本中的所有字段,这是不可能的。

您可以创建一个具有相同名称但没有类型参数的单独类

请注意,类型参数是类标识的一部分。如果您试图清除类的所有类型参数化版本中的所有字段,那么这是不可能的