c#重写抽象成员
本文关键字:成员 抽象 重写 | 更新日期: 2023-09-27 18:17:25
这里是我的代码,我试图覆盖SettingsFileName成员:
public class ProcessorTest: Processor
{
public virtual override string SettingsFileName
{
get { return @"C:'Settings.xml"; }
}
}
这个类的成员是:
public abstract class Processor
{
/// <summary>
/// Implement this property to enable initializing singleton from the correct file path
/// </summary>
public abstract string SettingsFileName { get; }
}
但是这给了我一个错误:
A member 'ProcessorTest.SettingsFileName' marked as override cannot be marked as new or virtual
我做错了什么?
在继承的类中只使用override
,不使用virtual override
。
virtual
将成员标记为可重写的,因此它在基类中使用。override
将成员标记为重写可重写的成员。abstract
暗含virtual
remove virtual here
public class ProcessorTest: Processor
{
public override string SettingsFileName
{
get { return @"C:'Settings.xml"; }
}
}
关键字不能同时使用
由于覆盖了抽象属性,所以SettingsFileName
不能是虚的。
不能使用修饰符new、static、virtual或abstract to修改重写方法
有关override
和abstract
的更多信息,请参阅MSDN。
您需要在ProcessorTest
中删除virtual
关键字
override
表示"override virtual function",不需要再写