using System;
class MainClass {
static void Main() {
A a = new A();
a.Value = new A();
Console.WriteLine("{0}", a?.DoIt()?.DoIt()?.DoIt());
Console.WriteLine("Hello World!");
}
}
public class A
{
public A Value {get;set;}
}
public static class AExtensions
{
public static A DoIt(this A a)
{
Console.WriteLine("IN IT, {0}, returning {1}", a == null ? "NULL A" : "NOT-NULL A", a.Value == null ? "NULL A" : "NOT-NULL A");
return a.Value;
}
}