我们知道多个(接口)继承是允许在c#但是,我想知道是否有可能是两个接口 示例:
interface calc1
{
int addsub(int a, int b);
}
interface calc2
{
int addsub(int x, int y);
}
具有相同类型和相同类型参数的相同方法名称
会在上面的类中继承吗?
class Calculation : calc1, calc2
{
public int result1;
public int addsub(int a, int b)
{
return result1 = a + b;
}
public int result2;
public int addsub(int x, int y)
{
return result2= a - b;
}
}
如果是,那么将调用哪个接口方法。
提前致谢。
答案 0 :(得分:10)
你不能像这样重载方法,不 - 它们具有相同的签名。您的选择是:
对一个或两个方法使用显式接口实现,例如
int calc2.addsub(int x, int y)
{
return result2 = a - b;
}
如果对这两种方法都这样做, 方法都不能在Calculation
类型的引用上调用;相反,在调用方法之前,您必须转换为一个接口或另一个接口,包括在类中。例如:
public void ShowBoth()
{
Console.WriteLine(((calc1)this).addsub(5, 3)); // 8
Console.WriteLine(((calc2)this).addsub(5, 3)); // 2
}