C# 错误消息 "Property can not be assigned to -- it is read only."

标签 c# properties readonly

可以在构造函数中分配只读属性。但是当我尝试显式实现 get 方法时,编译器显示错误(属性无法分配给 - 它是只读的。)我可以实现 getter 还是应该不实现?

public class PersonalIncome 
{
    private decimal _anualRate;
    public decimal AnualRate
    {
        get { return _anualRate != 0 ? _anualRate : 40_000;  }
    }

    public PersonalIncome(decimal paymentRate)
    {
        switch (paymentRate)
        {
            case var rate when (rate > 300):
                AnualRate = rate; // **Property can not be assigned to -- it is read only.**
                break;
            default:
              break;
        }
    }
}

最佳答案

您可以实现 getter,但随后您只能直接将值分配给支持字段:

_anualRate = rate; 

一旦您决定不使用自动属性的便利,您就必须自己完成所有事情。

关于C# 错误消息 "Property can not be assigned to -- it is read only.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53109116/

相关文章:

c++ - 静态字符串文字表?

c# - 使类字段在事后只读

c# - 并非所有代码路径都会返回一个值 - 但它们会

c# - 数组索引越界错误C#

c# - 无法在 C# 中创建两个具有相同名称的属性

html - 不同的 CSS 标签属性

extjs - 在 ext Js 中设置和删除只读属性

c# - 在托管代码中使用 win32

c# - 有什么方法可以确定在 C# 中等待锁定的线程数?

javascript - 为什么我不能在 Object.create() 中使用属性描述符设置可写属性?