61 lines
1012 B
C#
61 lines
1012 B
C#
|
|
||
|
// Tests anonymous type consolidation
|
||
|
|
||
|
using System;
|
||
|
using System.Collections;
|
||
|
|
||
|
public class Test
|
||
|
{
|
||
|
static string Null ()
|
||
|
{
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
public static int Main ()
|
||
|
{
|
||
|
var v1 = new { Name = "Scott", Age = 21 };
|
||
|
var v2 = new { Age = 20, Name = "Sam" };
|
||
|
var v3 = new { Name = Null (), Age = 33 };
|
||
|
|
||
|
if (v1.GetType () == v2.GetType ())
|
||
|
return 1;
|
||
|
|
||
|
if (v1.Equals (v2))
|
||
|
return 2;
|
||
|
|
||
|
if (v1.GetType () != v3.GetType ())
|
||
|
return 3;
|
||
|
|
||
|
if (!v1.Equals (v1))
|
||
|
return 4;
|
||
|
|
||
|
if (v1.GetHashCode () != v1.GetHashCode ())
|
||
|
return 5;
|
||
|
|
||
|
Console.WriteLine (v1);
|
||
|
Console.WriteLine (v3);
|
||
|
|
||
|
if (v1.ToString () != "{ Name = Scott, Age = 21 }")
|
||
|
return 6;
|
||
|
|
||
|
if (v3.ToString () != "{ Name = , Age = 33 }")
|
||
|
return 7;
|
||
|
|
||
|
var v4 = new {};
|
||
|
|
||
|
if (v4.ToString () != "{ }")
|
||
|
return 8;
|
||
|
|
||
|
var v5 = new { Foo = "Bar" };
|
||
|
var v6 = new { Foo = Null () };
|
||
|
|
||
|
if (v5.ToString () != "{ Foo = Bar }")
|
||
|
return 9;
|
||
|
|
||
|
if (v6.ToString () != "{ Foo = }")
|
||
|
return 10;
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
}
|