좋은 아침,이것은 불변의 우수 사례입니까? 가정하자
I 클래스
public class Class
{
int something;
int[] otherThing;
}
을하고 난 불변의 유형 Class
의 객체를 만들고 싶어. 너무 자주 새로운 객체를 생성 방지하기 위해, 내가 형 Class
의 새로운 객체를 생성하는 매우 빈번한 작업이 것이
public Class SomeFunction()
{
int[] Temp = new int[] { ... };
return new Class(1, Temp);
}
을 가정하고 Temp
이후이 너무 나쁘다, 방법 중 더 이상 액세스 할 수 없습니다 생성자 대신
otherThing = new uint[Temp.Length];
for (int i = 0; i < Temp.Length; i++)
{
this.otherThing[i] = Temp[i];
}
의
this.otherThing = Temp;
설정?
대단히 감사합니다.
-1. 내가 그 사실을 알고 있다는 사실이 내가 왜 그 질문을 제기하고 있는지 요. 또한 동일한 배열을 가리 키지 않습니다. 메소드는 생성자에 매개 변수로 전달되는 배열을 가리키며, 이는 메소드가 호출 될 때마다 새로 생성됩니다. – Miguel
@Miguel : 아니요. 배열은 참조 유형이므로 패스이며 참조로 저장됩니다. – Euphoric
글쎄, 당신이 100 % 배열이 바뀌지 않는다면 당신이 새로운 배열을 필요로 할 것이라고 말하고 싶습니다. 그러나 그때는 일정하고 매번 전달할 필요가 없습니다. – Geniedesalpages