我有一个带有一些通用方法的接口,我想要实现一个可以重载的方法,以便接受一个类的实例或其PK值(它可以是int或GUID但会有所不同)。
我添加了两个类似于下面这些示例的方法:
void DoSomething<TKey>(TKey key) where TKey: struct;
void DoSomething<TModel>(TModel model) where TModel : class;
第二个中的“DoSomething”方法名被突出显示,错误是:
“类型'ISomeStuff'已经定义了一个具有相同参数类型的成员'DoSomething'。”
我感到惊讶,因为我明确地将参数定义为不同类型:一个是类,另一个是结构体。
为什么这不足以使签名不同呢?