好的,我有这门课和主课。我在 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;
引发错误?