我有一个通用的类,如下所示:
public class MyClass<T>
{
public void SetValue(T value){...}
public T GetValue(){...}
public static void ClearAll(){...}
}
我想不时调用静态方法。理想情况是:
MyClass.Clear();
编译器抱怨
使用通用类型'MyClass'需要1个类型参数。
我可以这样称呼它:
MyClass<object>.Clear();
我觉得多余的<object>
会使代码不必要地混乱。但是,我不能简单地从类声明中删除<T>
,因为不可能从T
方法的使用中推断出GetValue()
。有什么方法可以定义类,以使公共静态方法不需要类型参数?
答案 0 :(得分:0)
您可以创建一个单独的具有相同名称但没有类型参数的类。
请注意,类型参数是类标识的一部分。如果您要清除类的所有类型参数化版本中的所有字段,则不可能直接这样做。