[英]Extends simple getter, setter Methods for Classes in C#
我有一個抽象類“建築”:
public abstract class Building {
abstract public int ID {get;}
abstract public string name {get;}
}
該類(例如)Headquarter:Building具有這些getter和setter方法的變量。 問題是我必須在每個子類中編寫
private int _ID = 1;
public int ID {
get {return _ID;}
}
有沒有一種方法可以在抽象類中創建例如前面的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; }
}
這會將實現移到基類中,但仍僅允許子類設置這些值。
您可以嘗試在基類中添加protected
setter,並在派生類的ctor中設置值:
public class Building
{
public int Id{get;protected set;}
並在派生類中:
public class Headquarter: Building
{
public Headquarter()
{
Id = 1;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.