日期:2014-05-18  浏览次数:20725 次

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

可是c#有办法么?

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

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


怎么办呢?

多谢

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

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


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