VBだと次のコードはFalse。
Sub Main() Dim v1 = New With {.A = "Test", .B = 2} Dim v2 = New With {.A = "Test", .B = 2} Console.WriteLine(Equals(v1, v2)) End Sub
でもC#だと次のコードはTrue。
static void Main(string[] args) { var v1 = new { A = "Test", B = 2 }; var v2 = new { A = "Test", B = 2 }; Console.WriteLine(Equals(v1, v2)); }
調べたてみたらここに書いてあった。
(VB) http://msdn.microsoft.com/ja-jp/library/bb384767.aspx
(C#) http://msdn.microsoft.com/ja-jp/library/bb397696.aspx
Sub Main() Dim v1 = New With {Key .A = "Test", Key .B = 2} Dim v2 = New With {Key .A = "Test", Key .B = 2} Console.WriteLine(Equals(v1, v2)) End Sub
ということでKeyってつければよいことがわかってよかったよかった。