http://ideone.com/U0XFO9속성이 직접 설정되어 예상되는 숫자를 출력하고 속성이 마지막으로 설정된 숫자와 간접적으로 설정되는 이유는 무엇입니까?
왜 속성이 직접 예상 번호와 간접적으로 마지막 세트 수를 같게 설정 속성을 출력 설정? 모든 코드에 사과드립니다.하지만 실제 코드의 차가운 버전입니다.
다음 코드 출력 :
1 // 9
2 // 9
3 // 9
4 // 9
5 // 9
6 // 9
7 // 9
8 // 9
9 // 9
는 출력한다 : 문제는 여기
1 // 1
2 // 2
3 // 3
4 // 4
5 // 5
6 // 6
7 // 7
8 // 8
9 // 9
코드
using System;
using System.Collections.Generic;
public class Test
{
public static void Main()
{
int x = 0;
example original_example = new example(0);
List<example> examples = new List<example>();
while (++x < 10)
{
examples.Add(new example(original_example, x));
}
foreach(example _example in examples)
Console.WriteLine(_example.number1 + " // " + _example.number2);
}
public class example
{
public int number1;
public int number2 { get { return (int)values["number"]; } }
public bool original = true;
Dictionary<string, object> values = new Dictionary<string,object>();
public example(int number)
{
original = true;
number1 = number;
values.Add("number", number);
}
public example(example original_example, int number)
{
original = false;
values = original_example.values;
values["number"] = number;
number1 = number;
}
}
}
"values = original_example.values"할 때 original_example에서 사전 인스턴스를 공유하므로 모든 개체에 대해 단일 값을 가진 하나의 사전이 있습니다. – fsimonazzi