using System;
abstract class Module
{
public Options Params;
}
abstract class Options { }
// implementation
class MyModule : Module
{
public new MyOptions Params = new MyOptions();
}
class MyOptions : Options
{
public string Param1;
}
public class Test
{
public static void Main()
{
var m = new MyModule();
if(m.Params is MyOptions)
{
Console.WriteLine("yes");
}
}
}
dXNpbmcgU3lzdGVtOwoKYWJzdHJhY3QgY2xhc3MgTW9kdWxlCnsKICAgIHB1YmxpYyBPcHRpb25zIFBhcmFtczsKfQoKYWJzdHJhY3QgY2xhc3MgT3B0aW9ucyB7IH0KCi8vIGltcGxlbWVudGF0aW9uCmNsYXNzIE15TW9kdWxlIDogTW9kdWxlCnsKICAgIHB1YmxpYyBuZXcgTXlPcHRpb25zIFBhcmFtcyA9IG5ldyBNeU9wdGlvbnMoKTsKfQoKY2xhc3MgTXlPcHRpb25zIDogT3B0aW9ucwp7CiAgICBwdWJsaWMgc3RyaW5nIFBhcmFtMTsKfQoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciBtID0gbmV3IE15TW9kdWxlKCk7CgkJaWYobS5QYXJhbXMgaXMgTXlPcHRpb25zKQoJCXsKCQkJQ29uc29sZS5Xcml0ZUxpbmUoInllcyIpOwoJCX0KCX0KfQ==