首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于readonly的小疑点

2012-01-31 
关于readonly的小问题字段不是readonly的,但是需要属性中要readonly.例如:publicclassD{privateIList int

关于readonly的小问题
字段不是readonly的,
但是需要属性中要readonly.

例如:
public   class   D
{
                private   IList <int>   list;
                public   IList <int>   List
                {
                        //问题1:如果要get得到的list不允许调用Add,Remove等方法,如何实现?
                        get
                        {
                                //return   list;
                        }
                        //问题2:如果只需要浅拷贝,就这样实现可以吗?
                        set
                        {
                              list   =   value;
                        }
                }
}

[解决办法]
没办法实现,除非用自定义类或接口而不是IList <int>
[解决办法]
复制一个只读的集合吗?每次都复制一遍,太费资源了吧
[解决办法]
复制一个只读的集合.. 太浪费了
[解决办法]
blue_sky007(蓝蓝的天)
你上面的方法可以,但每次读取都会在内存中添加一个实例,这样数据项多的时候会浪费内存和产生效率问题
[解决办法]
to zrh97870(123):

那关于read-only的特性的需求没有实现啊?

“The getter returns a read-only IList wrapper for the current collection.”
~~~~~
我主要的疑惑也在这里
///////////////////////////////////////////////////////////////////////////

自定义一个类,从List <int> 继承,把所有能改变list的方法和属性都覆盖重写。

如:
public class MyIntList : List <int>
{
public new int this[int index]
{
get
{
return base[index];
}
}

public new void Add(int item)
{
throw new Exception( "Can not use this method! ");
}
}


热点排行