2011-07-28 8 views
4

다음 코드에서 다른 익명 형식의 변수 c2와 c3은 왜 사용됩니까?C# 익명 형식 질문

미리 조언 해 주셔서 감사 드리며 ... 건배!

namespace ConsoleApplication5 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var c1 = new Customer { Name = "Mark", Country = "USA" }; 

      var c2 = new { c1.Name, c1.Country }; //"<>f__AnonymousType0`2" 
      var c3 = new { c1.Country, c1.Name }; //"<>f__AnonymousType1`2" 
     } 
    } 

    public class Customer 
    { 
     public string Name { get; set; } 
     public string Country { get; set; } 
    } 
} 

답변

10

다른 순서로 속성을 초기화했기 때문에.

동일한 순서로 초기화하는 경우에만 동일한 익명 유형으로 컴파일됩니다. anonymous types에 대한 MSDN의 문서에서 : 동일한 어셈블리에 두 개 이상의 익명 형식이 동일한 속성 수와 유형이있는 경우

는, 같은 순서로, 컴파일러는 같은 종류로 취급합니다.