static void Main(string[] args)
 {
     Console.WriteLine(StaticPropertyTypeRecursiveEquality <string> .Equals(
                           "foo", "bar"));
     Console.WriteLine(StaticPropertyTypeRecursiveEquality <Foo> .Equals(
                           new Foo()
     {
         A = 1, B = 2
     },
                           new Foo()
     {
         A = 1, B = 2
     }));
     Console.WriteLine(StaticPropertyTypeRecursiveEquality <Loop> .Equals(
                           new Loop()
     {
         A = 1, B = new Loop()
         {
             A = 3
         }
     },
                           new Loop()
     {
         A = 1, B = new Loop()
         {
             A = 3
         }
     }));
     Console.ReadLine();
 }
Exemple #2
0
    private static Func <T, T, bool> MakePropertyGetter <TProperty>(
        Expression <Func <T, TProperty> > getValueExpression)
    {
        var getValue = getValueExpression.Compile();

        return((t1, t2) =>
        {
            return StaticPropertyTypeRecursiveEquality <TProperty>
            .Equals(getValue(t1), getValue(t2));
        });
    }