저는 List<T>
을 가지고 있는데, 나는 대략적으로 설명하려고하는 행동을 피할 필요가 있습니다 :.NET Generic List <T> 문제는 설계 상 작동하며 해결해야합니다. 참조 대신 값 추가
// assume cls and numberToAdd are parameters passed in.
int pos = numberToAdd;
List<MyClass> objs = new List<MyClass>(numberToAdd);
for(int i = 0; i < numberToAdd; i++)
{
objs.Add(cls);
objs[i].X = -((pos * cls.Width) + cls.Width/2);
pos--;
}
Console.WriteLine(objs[0].X + "\r\n" + objs[1].X);
이 결과는이 글에서 동일한 값을 출력합니다.
기본적으로 필요한 것은 "Add"메서드의 동작을 변경하는 것입니다. 나는 동일한 객체에 대한 단순한 참조가 아닌 동일한 값을 가진 객체의 새 인스턴스를 추가하고 싶습니다. 나는 이것이 더 많은 메모리를 사용할 것이라는 것을 이해한다.
가 이렇게까지 종료, 대신 생성자의 방법으로 사용 - 하나 이상의 다른 장점이있다? – Nate
아니요. 어느 쪽이라도 괜찮습니다. 생성자는 개체를 만들기 전에 개체를 완전히 복제했음을 보증합니다. 이 메서드는 '.Clone()'을 호출 할 때까지 미리 객체가 비어 있음을 의미 할 수 있습니다. –