【发布时间】:2012-04-25 02:14:40
【问题描述】:
好的,我有这门课和主课。我正在使用 VS 2010 Ultimate 和 .NET 4 客户端。
internal class tezt
{
private int[] _numeros = new int[5];
public int[] Numeros
{
get { return _numeros; }
}
}
public class tezt2
{
private int[] _numeros = new int[5];
public int[] Numeros
{
get { return _numeros; }
}
}
class tezt3
{
private int[] _numeros = new int[5];
public int[] Numeros
{
get { return _numeros; }
}
}
internal static class Program
{
private static void Main()
{
var arrNums = new tezt();
var arrNums2 = new tezt2();
var arrNums3 = new tezt3();
Console.WriteLine(arrNums.Numeros[0]);
arrNums.Numeros[0] = 5;
Console.WriteLine(arrNums.Numeros[0]);
Console.WriteLine(arrNums2.Numeros[0]);
arrNums2.Numeros[0] = 6;
Console.WriteLine(arrNums2.Numeros[0]);
Console.WriteLine(arrNums3.Numeros[0]);
arrNums3.Numeros[0] = 7;
Console.WriteLine(arrNums3.Numeros[0]);
Console.ReadKey(true);
}
}
这些行发生了什么:
arrNums.Numeros[0] = 5;
arrNums2.Numeros[0] = 6;
arrNums3.Numeros[0] = 7;
难道不是因为派生这些对象的类没有set参数,就不能允许这些赋值?
可以做些什么来避免这种情况,限制这种情况,像arrNums.Numeros[0] = 5; 这样的行为会引发错误?
【问题讨论】:
-
您没有设置属性。您正在从属性中获取数组并分配给它的元素。如果您不想这样做,请不要公开数组。
标签: c# arrays properties