读书人

越来越感觉这个有关问题比较麻烦有办

发布时间: 2012-04-25 19:32:32 作者: rapoo

越来越感觉这个问题比较麻烦,有办法么?
c++里面,函数传入参数前面加修饰const可以让参数在函数中不能修改

可是c#有办法么?

比如传入参数是一个数组
这个数组很大,复制出一份也不可能,为了效率,我直接传递数组给函数
我又不想让别人修改这个数组
怎么办?

类似的问题还有传入类的实例,在函数中只能读取类的属性,而不能修改


怎么办呢?

多谢

[解决办法]
很可惜目前没有办法,C#不支持const(原因之一是没有好的运行期强制措施)。

如果一定要强调只读,可以用副本方式,或用ReadonlyCollection等方式。
象你的情况,可以在函数说明中进行强调。


[解决办法]
我觉得你还是做一个数组包装类来完成,考虑用只读集合.如果传数值参可以先把这个值转入常量后再传参

读书人网 >C#

热点推荐