我有这样一个基类:
public class Trajectory{ public int Count { get; set; } public double Initial { get; set { Count = 1; } } public double Current { get; set { Count ++ ; } } }
所以,我在基类中有代码,这使得set-s成为虚拟,但是get-s必须保持抽象.所以我需要这样的东西:
... public double Initial { abstract get; virtual set { Count = 1; } } ...
但是这段代码会出错.
重点是在基类中实现计数器功能,而不是在所有派生类中实现.
那么,我如何使用不同的修饰符来创建属性的get和set?
解决方法
将其分为两个功能:
public double Initial { get { return GetInitial(); } set { SetInitial(value); } } protected virtual void SetInitial(double value) { Count = 1; } protected abstract double GetInitial();