C#의 데이터 세트 초기화 차이점
-
09-06-2019 - |
문제
객체를 초기화하는 두 가지 방법 사이에 차이점(성능, 오버헤드)이 있습니까?
MyTypedDataSet aDataSet = new MyTypedDataSet();
aDataSet .Merge(anotherDataSet);
aDataSet .Merge(yetAnotherDataSet);
그리고
MyTypedDataSet aDataSet = anotherDataSet;
aDataSet .Merge(yetAnotherDataSet);
어느 것을 추천하시나요?
해결책
Keith가 옳기는 하지만, 나는 그 예가 단순히 잘못 선택되었다고 생각합니다.일반적으로 처음부터 "올바른" 개체로 초기화하는 것이 더 좋으며 ~ 아니다 귀하의 경우와 같이 중간의 빈 객체를 구성하십시오.두 가지 이유:
- 성능.이는 분명해야 합니다.객체를 생성하는 데는 시간이 걸리므로 객체를 적게 만드는 것이 좋습니다.
- 많이 그러나 더 중요한 것은 귀하의 의지.당신은 일반적으로 ~ 아니다 상태 비저장/빈 개체를 만들려고 합니다.오히려 일부 상태나 콘텐츠가 포함된 객체를 생성하려고 합니다.해.쓸모없는(비어 있기 때문에) 임시를 만들 필요가 없습니다.
다른 팁
이 두 줄은 서로 다른 일을 합니다.
첫 번째는 새 세트를 만든 다음 두 번째 세트를 여기에 병합합니다.
두 번째는 두 번째 세트를 가리키도록 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 */ );
그러면 전자가 빈 개체를 채우기 전에 생성하므로 후자가 더 좋습니다.
그러나 빈 클래스를 초기화하는 데 비용이 많이 들거나 여러 번 반복되지 않는 한 그 차이는 그다지 중요하지 않습니다.
두 번째 예는 ~ 아니다 새 데이터 세트를 만듭니다.잠시만요 참조 기존 데이터 세트에.
제휴하지 않습니다 StackOverflow