我有几个实现IMyInterface的类。该接口包含一个名为Delete的方法,因此所有类都定义了自己的Delete方法。
我的代码中也有很多地方,我正在调用MyClass1.Delete(myClass1Id)或MyClass2.Delete(myClass2Id)等。
我正在尝试定义一个通用的常用方法,该方法采用泛型类参数和Id的字符串。
我猜它会看起来像这样,但我找不到任何有关以这种方式使用泛型类的相关文档:
public static void DeleteGeneric<TMyClass>(string myId)
{
//call the relevant Delete method for the TMyClass class
}
答案 0 :(得分:3)
这里根本不需要使用泛型;只需接受界面实例:
public static void DeleteGeneric(IMyInterface deletable, string myId)
{
deletable.Delete(myId);
}
答案 1 :(得分:1)
我想你想要这样的代码:
public static void DeleteGeneric<TMyClass>(TMyClass myId) where TMyClass : IMyInterface
{
myId.Delete();
}
这就是说TMyClass必须实现IMyInterface接口,并且传递的参数是TMyClass的任何类型。
没有泛型可能会更简单
public static void DeleteGeneric(IMyInterface myId)
{
myId.Delete();
}
免责声明,我在浏览器中输入了此代码,因此可能存在语法错误。