c# - 一个属性的get可以是抽象的,而set是虚拟的吗?

标签 c# properties

我有一个这样的基类:

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; } }
...

但是这段代码报错了。 重点是在基类中而不是在所有派生类中实现计数器功能。 那么,如何使用不同的修饰符来获取和设置属性?

最佳答案

将它分成两个函数:

public double Initial
{
    get { return GetInitial(); }
    set { SetInitial(value); }
}

protected virtual void SetInitial(double value)
{
    Count = 1;
}

protected abstract double GetInitial();

关于c# - 一个属性的get可以是抽象的,而set是虚拟的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2985534/

相关文章:

javascript - 将字符串数组与具有字符串属性的数组对象进行比较的最佳方法?

Delphi 2009 - 在自定义 Delphi 组件中设置默认属性值

c# - CancellationToken 是否删除文件锁定?

c# - HTML 文档不包含 Web 服务发现信息

c# - 制作 list 的最简单方法

javascript - 如何在 JavaScript 对象文字中使用变量作为键?

javascript - Javascript 中 value.x 和 value[x] (从数组获取属性)之间的区别?

javascript - 如何在javascript中转换数据格式

c# - 如何使用组合框更改 richTextBox 字体大小

c# - 自动过滤电子表格齿轮