Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#只能设置一次的常量属性_C# - Fatal编程技术网

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

C#只能设置一次的常量属性,c#,C#,我不断发现自己需要一个常量,该常量必须在方法的作用域之外声明,但只能在方法内部指定一个值。结果是,在赋值之前,我必须对方法中的值进行null检查,但在这一点上,我无法使常量成为常量 难道没有一个本机C#修饰符可以处理这个问题吗?如果没有,是否存在类似的语言?为什么它不存在于C#中 这里有一个类似的帖子: 但它主要关注使用getter和setter进行空检查不可能在指定的方法内部设置类字段 但是,对于只能在构造函数内部设置的字段,可以限制该字段。当您要使用惰性实例惰性地初始化值时,该字段的关键字称

我不断发现自己需要一个常量,该常量必须在方法的作用域之外声明,但只能在方法内部指定一个值。结果是,在赋值之前,我必须对方法中的值进行null检查,但在这一点上,我无法使常量成为常量

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

这里有一个类似的帖子:


但它主要关注使用getter和setter进行空检查

不可能在指定的方法内部设置类字段


但是,对于只能在构造函数内部设置的字段,可以限制该字段。当您要使用
惰性
实例惰性地初始化值时,该字段的关键字称为
只读

。这允许您在构造函数中设置
Lazy
实例,这意味着字段可以是
readonly
,但可以确保创建对象的方法在需要时才被调用,并且它只能初始化一次值。

听起来像是想要一个属性查看
readonly
。限制是您只能在构造函数中为它赋值。这在方法级别上是不可能的(在C#)。只有在类级别上才能执行类似操作。的可能重复,除非有人再次使用
new
关键字。@user3185569仍然没有再次初始化该字段。这只是创建一个新实例,这正是您希望在
readonly
字段中执行的操作。可以为每个实例设置一次,而不是为每个应用程序设置一次。如果需要后者,只需将其设置为
静态