에서 인스턴스화C# 데이터 반원 선언
[DataMember]
public List<SpecialOpeningHours> SpecialOpeningHours { get; set; }
누구든지이 방법으로 인스턴스화 된 이유와 장점이 있는지 설명 할 수 있습니까? 사용상 차이는없는 것 같습니다. 나는 Dapper를 사용하고 있으며 같은 결과로 목록을 채울 수 있습니다.
에서 인스턴스화C# 데이터 반원 선언
[DataMember]
public List<SpecialOpeningHours> SpecialOpeningHours { get; set; }
누구든지이 방법으로 인스턴스화 된 이유와 장점이 있는지 설명 할 수 있습니까? 사용상 차이는없는 것 같습니다. 나는 Dapper를 사용하고 있으며 같은 결과로 목록을 채울 수 있습니다.
첫 번째 예는 단지 바로 가기이를 위해 C# 6에 도입 :
public MyClass()
{
this.SpecialOpeningHours = new List<SpecialOpeningHours>();
}
지금과 비교해 :
public MyClass()
{
this.SpecialOpeningHours = null;
}
전자는 첫 번째 옵션은 컴파일 할 때로 번역되는 것입니다 두 번째 것은 초기 값을 추가하지 않을 때 얻을 수있는 것입니다. 특히 두 번째 예제에서는 멤버 중 하나를 호출하자 마자 NullReferenceException이 발생하므로 첫 번째 멤버가 정상적으로 실행됩니다.
감사합니다. 기본적으로 빈 목록을 갖는 것이 유용 할 수 있지만 데이터베이스가 데이터를 반환하지 않았다는 것을 의미합니다. 나는 is가 채워질 때까지 null을 갖는 것을 선호한다고 생각합니다. –
비어있는 목록을 기본값으로 사용하는 것은 목록에만 적용됩니다. 대신 IEnuemrable
그냥 이전 Entity Framework 프로젝트를 살펴 보았습니다. EF에 의해 모델이 생성되는 곳에서는 멤버가 새로운 빈 목록으로 인스턴스화되지 않습니다. 나는 그것들을 인스턴스화하는 것의 이점을 볼 수 있고 그것을 사용하는 것을 고려할 것이다. –
차이점은 두 번째 버전에서는'SpecialOpeningHours'가'null'입니다. –
"사용상 차이가없는 것 같습니다." 후자의 경우 null이 아닌 값으로 시작하는 반면, 두 번째 경우에는 null 값으로 시작합니다. 어떻게 다른가요? –
https://msdn.microsoft.com/magazine/dn802602.aspx를 보시오 – HimBromBeere