【发布时间】:2016-11-08 08:14:14
【问题描述】:
有2个接口定义为:
interface calc1
{
int add(int a, int b);
}
interface calc2
{
int add(int x, int y);
}
一个类实现了这两个接口:
class Calculation : calc1, calc2
{
public int result1;
public virtual int add(int a, int b)
{
return result1 = a + b;
}
}
一切正常。但是当我将类定义更改为:
class Calculation : calc1, calc2
{
public int result1;
public int result2;
public virtual int calc1.add(int a, int b)
{
return result1 = a + b;
}
public int calc2.add(int x, int y)
{
return result2 = x - y;
}
}
我看到错误:
The modifier 'virtual' is not valid for this item
和
The modifier 'public' is not valid for this item
后面的类代码有什么问题?
【问题讨论】:
-
为什么需要方法为
virtual?您打算从Calculation继承吗?你只需要这两种方法中的一种是虚拟的吗? -
是的。由于我无法发布原始代码,因此我在此处发布之前已对其进行了更改。我只希望这两种方法之一是虚拟的,因为我将在派生类中覆盖它。
-
您可以将第一个设为隐式实现 (
public virtual int add(int a, int b)),将第二个设为显式实现 (int calc2.add(int x, int y)) -
谢谢!它奏效了。
标签: c#