【发布时间】:2012-12-06 07:49:50
【问题描述】:
这是一个非常基本的方法重载示例,两个方法名称相同但签名不同:
int MyMethod(int a)
int MyMethod(int a, string b)
现在假设我定义了两个通用接口,共享完全相同的名称但类型参数数量不同,例如:
IMyInterface<T>
IMyInterface<T1,T2>
我可以说这代表“通用接口重载”吗?还是“重载”术语仅适用于这种情况下的方法?它看起来仍然与方法重载非常相似,因为我们保持完全相同的名称但参数不同。
如果我不能说“通用接口重载/重载”,对于这两个共享相同名称的不同接口我能说什么?
感谢和抱歉,如果这是一个愚蠢的问题,但谷歌搜索“通用接口重载”或“通用接口重载”并没有给我太多,而是关于接口方法重载的结果,这不是我感兴趣的。
【问题讨论】:
-
我会选择“通用类型参数重载”。也许“过载”是不正确的术语。可能需要用不同的方式来描述它。
-
我称之为语义。只要人们知道你在说什么,它叫什么并不重要。
-
不是答案,但我想你会喜欢阅读这个答案:stackoverflow.com/a/4876693/151445。
-
如果您阅读 MSDN 上的
Tuple类 (msdn.microsoft.com/en-us/library/system.tuple.aspx),它从不使用特定术语。实际上,它倾向于将不同的版本称为不同的类型。但是,它也通过引用它们的“组件”来区分它们。因此,也许在引用您的泛型类型时,您可以使用诸如“具有 2 个组件的 MyMethod 类型”或“具有 1 个组件的 MyMethod 类型”之类的语言?
标签: c# overloading terminology generic-interface