几种通用类的常用方法

时间:2014-09-25 19:58:04

标签: c# generics interface

我有几个实现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
}

2 个答案:

答案 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();
}

免责声明,我在浏览器中输入了此代码,因此可能存在语法错误。