我正在編寫一些代碼,我發現當我創建一個沒有設置器的新抽象屬性時,我無法在構造函數中設置它的值。為什么當我們使用普通屬性時會出現這種情況?有什么不同?protected Motorcycle(int horsePower, double cubicCentimeters){ this.HorsePower = horsePower; //cannot be assigned to -- it is read only this.CubicCentimeters = cubicCentimeters;}public abstract int HorsePower { get; }public double CubicCentimeters { get; }顯然,如果我們想在構造函數中設置它,我們應該使用 protected 或 public setter。
2 回答

烙印99
TA貢獻1829條經驗 獲得超13個贊
是的,您有編譯時錯誤,因為不能保證有HorsePower一個要分配的支持字段。想象,
public class CounterExample : Motorcycle {
// What "set" should do in this case?
public override int HorsePower {
get {
return 1234;
}
}
public CounterExample()
: base(10, 20) {}
}
this.HorsePower = horsePower;這種情況應該怎么辦?
- 2 回答
- 0 關注
- 142 瀏覽
添加回答
舉報
0/150
提交
取消