我是C#世界的新手,我找不到在C#中声明只读变量的方法(类似于在c ++中声明"const"变量).有吗?
我给你举个例子:
...
int f() { return x; } // x is not const member
...
void g() {
int readOnlyVar = f(); // is there a method to declare readOnlyVar as read only or const
// Some code in which I want to restrict access to readOnlyVar to read only
}
Run Code Online (Sandbox Code Playgroud)
Ode*_*ded 11
没有相同的类比.
的readonly关键字允许变量值要被突变,但只有在一个构造函数.
该const关键字是指该值不能突变并需要一个编译时间常数,并且可以仅是以下类型之一:为sbyte,字节,短,USHORT,INT,UINT,长,ULONG,炭,浮点,双精度,小数,布尔,字符串,枚举类型或引用类型.(C#4.0规范§10.4).
在c#中,readonly仅适用于字段,不能应用于局部变量.
不,您的代码示例没有解决方案。
const在 C# 中用于编译时常量,并且由于变量从函数获取其值,因此在编译时不知道它。
该readonly关键字可以实现您正在寻找的功能,但这仅适用于类中的成员变量(并且仅允许在类的构造函数中设置变量)。
但是,另一方面,你为什么需要它呢?如果你的函数很长,应该将其重构为更小的函数。如果不是很长,那么为什么需要执行这样的规则呢?恐怕只是不要分配给readOnlyVar你可能是我对你最好的建议。
| 归档时间: |
|
| 查看次数: |
11782 次 |
| 最近记录: |