C# 尽管实现的方法具有相同的签名,但代码仍然有效
我不知道为什么这个代码有效C# 尽管实现的方法具有相同的签名,但代码仍然有效,c#,interface,C#,Interface,我不知道为什么这个代码有效 interface ISumCalculator { int Calc( int x, int y ); } interface IProductCalculator { int Clac ( int x, int y ); } class Calculator : ISumCalculator, IProductCalculator { public int Calc(int x, int y) { throw
interface ISumCalculator
{
int Calc( int x, int y );
}
interface IProductCalculator
{
int Clac ( int x, int y );
}
class Calculator : ISumCalculator, IProductCalculator
{
public int Calc(int x, int y)
{
throw new NotImplementedException();
}
public int Clac(int x, int y)
{
throw new NotImplementedException();
}
}
这些方法具有相同的签名,但名称不同,因此这里没有问题 即使在名称和签名完全相同的情况下,您也可以通过在方法定义中显式定义接口来轻松解决问题:
class Calculator : ISumCalculator, IProductCalculator
{
int IProductCalculator.Calc(int x, int y)
{
throw new NotImplementedException();
}
int ISumCalculator.Calc(int x, int y)
{
throw new NotImplementedException();
}
}
Calc()
和Clac()
是两个不同的方法名称。Uhm。。。它们有不同的名称?一个是Calc
,另一个是Clac
。为了保持一致性,我建议将IPProductCalculator接口重命名为IPProductCalculator。如果名称匹配,您仍然可以使用使Calculator
实现这两个名称。