C#常量属性,只能设置一次

时间:2016-08-04 16:46:10

标签: c#

我不断发现自己需要一个必须在方法范围之外声明的常量,但只能在方法内部赋值。结果是我必须在分配值之前对方法中的值进行空值检查,但是在那时我不能使常量变为常量。

是否有可以处理此问题的本机C#修饰符?如果没有,它是否存在于类似语言中?为什么它不存在于C#中?

这里有一个类似的帖子:Is there a way of setting a property once only in C#

但它主要侧重于使用getter和setter进行空值检查

2 个答案:

答案 0 :(得分:5)

如果您想懒惰地初始化值,请使用Lazy实例。这允许您在构造函数中设置Lazy实例,这意味着该字段可以是readonly,但可确保在需要之前调用创建对象的方法,它只能初始化一次值。

答案 1 :(得分:0)

不可能有一个类字段只能在您指定的方法内设置。

但是,您可以限制只能在构造函数中设置的字段。名为readonly的关键字。