假设我有:
public abstract class A {
public abstract string Name { get; }
}
我想使用“快捷方式”在子类中创建属性:
public string Name { get; set; }
而不是:
private string _Name;
public string Name {
get{ return _Name; }
set{ _Name=Name; }
}
但是这会导致编译错误,因为我有set;
public class B {
public override Name{get; set;}
}
如何仅覆盖get;
?
答案 0 :(得分:3)
只需实现getter:
public override string Name
{
get
{
return this.name;
}
}
private string name;
如果你想要一个简单的get + set属性,那么简单的get + set属性的简写很好,但是如果你想要一些更复杂的东西(比如只有一个getter的属性),你需要自己实现它。
简短回答:没有简写方式
答案 1 :(得分:1)
public class B {
private string iName;
public override string Name{get{ return iName;}}
}
旁注: 您可以将基类作为接口,然后在实现类中重写:
public interface A {
string Name { get; }
}
public class B : A {
public string Name {get;set;}
}