我在C#中有以下代码,并且Visual Studio在Derived类中抱怨我不能声明虚拟/抽象成员私有..但我不是..所以有人有一些想法吗?感谢
public class Base
{
private const string Name= "Name1";
protected virtual string Member1
{
get{
return Name;
}
}
}
public class Derived: Base
{
private const string Name= "Name2";
protected override string Member1
{
get{
return Name;
}
}
}
答案 0 :(得分:5)
无法复制,修复了“类”的情况并提供了方法体:
class Base
{
protected virtual string Member1() { return null; }
}
class Derived : Base
{
protected override string Member1() { return null; }
}
编译时没有任何警告。
如果您尝试将字段声明为虚拟,那么您将获得:
Test.cs(11,30):错误CS0106:修饰符'virtual'对此项无效
Test.cs(17,31):错误CS0106:修饰符'覆盖'对此项无效
答案 1 :(得分:2)
虚拟方法必须有一个正文:
public class Base
{
protected virtual string Member1()
{
return "";
}
}
public class Derived: Base
{
protected override string Member1()
{
return "this is the ovveride";
}
}