Chr*_*ryb 2 c# getter setter class extend
我有一个抽象类'建筑':
public abstract class Building {
abstract public int ID {get;}
abstract public string name {get;}
}
Run Code Online (Sandbox Code Playgroud)
类(例如)总部:Building具有这些getter和setter方法的变量.问题是我必须在每个子类中编写
private int _ID = 1;
public int ID {
get {return _ID;}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在抽象类中创建例如一个getter setter方法,比如提前编译方法并保存代码,这样我只需要设置变量?谢谢你的帮助.
您可以使setter受到保护,和/或允许在构造函数中设置它们,而不是使属性成为抽象:
public abstract class Building
{
// Optional constructor
protected Building(int id, string name)
{
this.ID = id;
this.Name = name;
}
public int ID { get; protected set; }
public string Name { get; protected set; }
}
Run Code Online (Sandbox Code Playgroud)
这会将实现移动到基类中,但仍然只允许子类设置这些值.