class C1 { public int P1 => 0; public int P2 { get { return 1; } set { } } public int M() => 2; } // Stub implementation class C2 { public int F = 1; public int this[int i] => throw null; public string this[string s] { get { throw null; } set { } } public void M1(int i = 1) { int M2() => throw null; } public C2(int i) { throw null; } public C2() : this(1) { } ~C2() { throw null; } public static implicit operator C2(int i) => throw null; public int P { get; set; } = 1; } class C3 { public int P3 { get; } } partial class C4 { int M1() => 0; }