C# 错误:无法将虚拟/抽象成员声明为私有
可能重复: 我用C编写了以下代码,Visual Studio在派生类中抱怨我不能将虚拟/抽象成员声明为私有。。但我不是。。有人有什么想法吗?谢谢C# 错误:无法将虚拟/抽象成员声明为私有,c#,C#,可能重复: 我用C编写了以下代码,Visual Studio在派生类中抱怨我不能将虚拟/抽象成员声明为私有。。但我不是。。有人有什么想法吗?谢谢 public class Base { private const string Name= "Name1"; protected virtual string Member1 { get{ return Name; } } } public class Derived: Ba
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;
}
}
}
无法复制,已修复类的大小写并提供了方法体:
class Base
{
protected virtual string Member1() { return null; }
}
class Derived : Base
{
protected override string Member1() { return null; }
}
这在编译时没有警告
如果您试图将字段声明为虚拟字段,则会得到:
Test.cs11,30:错误CS0106:修饰符“virtual”对此项无效
Test.cs17,31:错误CS0106:修饰符“override”对此项无效
虚拟方法必须有一个主体:
public class Base
{
protected virtual string Member1()
{
return "";
}
}
public class Derived: Base
{
protected override string Member1()
{
return "this is the ovveride";
}
}
你也可以发布实际的错误消息吗?全部?那根本不正确。。。请张贴您的实际代码!我希望您的实际代码具有小写的类,并且成员函数的声明正确,就像受保护的虚拟字符串Member1;?这不是另一篇文章的副本。成员被声明为受保护的,而不是私有的。是的,我已经编辑了代码。@Rosie,这个版本的代码已经编译好了。您确定问题不在其他区域吗?提供一个实际演示问题的片段。使用道具也一样-也没问题…谢谢,Jon。它确实很好。Visual studio很奇怪,它一直给我这个警告,直到我编译它。。。