好的,我有這個課程和主要。我在VS 2010旗艦版和.NET 4客戶端上。C#中的屬性和數組會發生什麼?
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
參數,這些asignations絕不允許?
可以做些什麼來避免這種情況,爲了限制這種情況,如arrNums.Numeros[0] = 5;
這樣做會引發錯誤?
你沒有設置屬性。您正在從屬性獲取數組並將其分配給其元素。如果你不想要這個,不要公開一個數組。 – 2012-04-25 02:18:19