AnonymousClass - mehdimo/janett GitHub Wiki

In Java, we have anonymous classes which can be declared at the same point where they are required to instantiate. In C#, We transform anonymous classes to inner classes.

[Java]

public class TestClass
{
    public void Method()
    {
        Comparable c = new Comparable()
        {
            public int compareTo(Object obj1, Object obj2)
            {
                return (obj1.toString() == obj2.toString());
            }
        }
    }
}

[C#]

public class TestClass
{
    public void Method()
    {
        Comparable c = new AnonymousClassComparable(this);
    }
    private class AnonymousClassComparable : Comparable
    {
        public AnonymousClassComparable(TestClass enclosing)
        {
            this.Enclosing = enclosing;
        }
        public int compareTo(Object obj1, Object obj2)
        {
            return(obj1.ToString() == obj2.ToString());
        }
        TestClass enclosing;
    }
}