数组有个属性IsReadOnly。 可是怎么能让数组是只读呢?
—- 5分
//
// 摘要:
// 获取一个值,该值指示 System.Array 是否为只读。
//
// 返回结果:
// 此属性对于所有数组总是 false。
public bool IsReadOnly { get; }
// 摘要:
// 获取一个值,该值指示 System.Array 是否为只读。
//
// 返回结果:
// 此属性对于所有数组总是 false。
public bool IsReadOnly { get; }
如果你想要用数组,那是不可能的
—-
你的意思是说,数组的IsReadOnly都是false?
—- 5分
这个问题 我不知道,但是 我这里有一个 解决方案:
public class MyArrayList{ private string[] array=new string[10]; publc string this[int index]{ get{ return array[index]; } } public MyArray(IEnumrate<string> initArray){ Array.Copy(initArray, array); } }
—-
按MSDN的说法,转成IList<T>就是只读的了
—- 10分
数组不能是只读,但是你可以包装下,避免原始数组被修改(这里说的只读是不能修改元素的值,以及将数组引用指向另一个数组)
class ReadOnlyArray<T>
{
private readonly T[] innerArray;
public ReadOnlyArray(T[] array) { innerArray = array; }
public T this[int i] { get { return innerArray[i]; } }
}
这样T一旦赋值,就不能再被更改了,前提是你不能绕开这个类直接访问array。
class ReadOnlyArray<T>
{
private readonly T[] innerArray;
public ReadOnlyArray(T[] array) { innerArray = array; }
public T this[int i] { get { return innerArray[i]; } }
}
这样T一旦赋值,就不能再被更改了,前提是你不能绕开这个类直接访问array。
CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明数组有个属性IsReadOnly。怎么能让数组是只读呢!