C# 错误:无法将虚拟/抽象成员声明为私有

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

可能重复:

我用C编写了以下代码,Visual Studio在派生类中抱怨我不能将虚拟/抽象成员声明为私有。。但我不是。。有人有什么想法吗?谢谢

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很奇怪,它一直给我这个警告,直到我编译它。。。