【发布时间】:2013-10-11 10:34:49
【问题描述】:
为什么我不能执行以下操作?
public interface ICommunication
{
int Send(Dictionary<string, string> d);
int Send(byte[] b);
Dictionary<string, string> Receive();
byte[] Receive(); // Error
}
Receive()的signarure不同但参数相同。为什么编译器只看参数而不看成员签名?
ICommunication' 已经定义了一个名为 'Receive' 的成员 相同的参数类型。
我该如何解决这个问题?
我可以将Receive() 重命名如下,但我更愿意将其命名为Receive()。
public interface ICommunication
{
int Send(Dictionary<string, string> d);
int Send(byte[] b);
Dictionary<string, string> ReceiveDictionary();
byte[] ReceiveBytes();
}
【问题讨论】:
-
你不能这样做,因为语言设计者认为它会引入太多的歧义。你必须给他们单独的名字。请参阅此处进行讨论:stackoverflow.com/questions/442026/…
标签: c# .net interface method-signature