读书人

请教readonly变量如何设置set属性

发布时间: 2013-08-16 14:29:57 作者: rapoo

请问readonly变量怎么设置set属性?
比如
class Program
{
public readonly int a;

public int A
{
get
{
return a;
}
set
{
if(value<=0)
a = value;
}
}
}

比如这样的一段代码,我想为这个readonly变量设置属性,不过readonly不是除了在构造函数以外无法赋值吗?
想请问一下,我应该怎么设置这样的属性,谢谢 readonly设置属性
[解决办法]

引用:
Quote: 引用:

你以上的代码在vs中编译后,会出现:无法对只读的字段赋值(构造函数或变量初始值指定项中除外)的错误。
很显然,作为只读的变量,不应该再set值,这是相互矛盾的。
那如果想设置范围应该怎么办?

在vs中,在public readonly int a;后面,按ctrl+r+e,会有提示,你会发现vs自动生成的代码当中,只有get,没有set。readonly是只读的,不能修改的,它就是一个固定的值,为什么要设置范围呢?
[解决办法]
反射可破。
readonly 字段 是 initonly.使用反射可以不用限制在构造时候赋值

读书人网 >C#

热点推荐