我有以下课程:
// abstract
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;
}
和代码:
var MyMod = new MyModule();
MyMod.Params.Param1 = "new value"; // ok
// convert
Module Mod = MyMod; // if use MyModule Mod - ok
if (Mod.Params as MyOptions != null)
{
MessageBox.Show("cast OK"); // not execute
}
模块可以是不同的类型(我不知道它们),但它总是从 Module 继承而来。我需要确定该字段是否Params
为实例(或实现)MyOptions
并获取值,如果为真。我会对任何决定感到高兴。