No contexto da linguagem C#, considere o código a seguir.
namespace NS { abstract class C1 { public abstract void M1();
public void M2()
{ . . . .
}}
class P { static void Main(string[] args)
{ C2 x = new C2();
x.M1();
x.M2();
}}}
A estrutura de código que substitui corretamente o tracejado é: