문제

객체를 초기화하는 두 가지 방법 사이에 차이점(성능, 오버헤드)이 있습니까?

MyTypedDataSet aDataSet = new MyTypedDataSet();
aDataSet .Merge(anotherDataSet);
aDataSet .Merge(yetAnotherDataSet);

그리고

MyTypedDataSet aDataSet = anotherDataSet;
aDataSet .Merge(yetAnotherDataSet);

어느 것을 추천하시나요?

도움이 되었습니까?

해결책

Keith가 옳기는 하지만, 나는 그 예가 단순히 잘못 선택되었다고 생각합니다.일반적으로 처음부터 "올바른" 개체로 초기화하는 것이 더 좋으며 ~ 아니다 귀하의 경우와 같이 중간의 빈 객체를 구성하십시오.두 가지 이유:

  1. 성능.이는 분명해야 합니다.객체를 생성하는 데는 시간이 걸리므로 객체를 적게 만드는 것이 좋습니다.
  2. 많이 그러나 더 중요한 것은 귀하의 의지.당신은 일반적으로 ~ 아니다 상태 비저장/빈 개체를 만들려고 합니다.오히려 일부 상태나 콘텐츠가 포함된 객체를 생성하려고 합니다.해.쓸모없는(비어 있기 때문에) 임시를 만들 필요가 없습니다.

다른 팁

이 두 줄은 서로 다른 일을 합니다.

첫 번째는 새 세트를 만든 다음 두 번째 세트를 여기에 병합합니다.

두 번째는 두 번째 세트를 가리키도록 ds 참조를 설정합니다.

MyTypedDataSet ds1 = new MyTypedDataSet();
ds1.Merge(anotherDataSet);
//ds1 is a copy of anotherDataSet
ds1.Tables.Add("test")

//anotherDataSet does not contain the new table

MyTypedDataSet ds2 = anotherDataSet;
//ds12 actually points to anotherDataSet
ds2.Tables.Add("test");

//anotherDataSet now contains the new table

좋아, 당신이 의미하는 바가 다음과 같다고 가정해 봅시다:

MyClass o1 = new MyClass();
o1.LoadFrom( /* some data */ );

//vs

MyClass o2 = new MyClass( /* some data */ );

그러면 전자가 빈 개체를 채우기 전에 생성하므로 후자가 더 좋습니다.

그러나 빈 클래스를 초기화하는 데 비용이 많이 들거나 여러 번 반복되지 않는 한 그 차이는 그다지 중요하지 않습니다.

두 번째 예는 ~ 아니다 새 데이터 세트를 만듭니다.잠시만요 참조 기존 데이터 세트에.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top