我被问到更多信息:原始问题如下
我看到了上面提到的答案.在发布之前我确实看过.这就是我发现.IsSubclassOf我不知道存在的方式(我非常新C#).
我不明白的是当我尝试使用该命令时出现错误的原因.
我需要能够判断某个对象O是否是某个其他类C的子类.如果我直接指定类C的类型(例如ListBox),但是哪个类O会有所不同,这是可以的,这就是为什么我需要检查.O可能是从中派生的许多对象中的一个,ListBox也可能是派生自的对象,TextBox也可能是其他对象.我需要能够对那些传递方法的情况采取行动,这些对象是从ListBox派生的对象或者从ListBox的子类派生的,或者任何类O可能是或者可能不是派生/子类的
如果 "st"可以在最后一个语句中起作用,我在下面给出的示例将正常工作.但它不起作用.它给了我一个错误.我被告知我不能在那里使用变量 - 我必须使用Type.但变量是一种类型.我将其声明为上述类型.我不能具体说明类型,因为我不知道对象的类型.我必须得到它GetType.
原始问题/帖子:
我需要能够判断对象的实例是否来自特定的类.
这只是测试type of和"is a IsSubclassOf"方法的一些示例代码,但它们似乎对我不起作用.
ListBox tb = new ListBox();
NoVerticalScrollCheckedListBox nvlb = new NoVerticalScrollCheckedListBox();
Type st = nvlb.GetType();
Type uType = tb.GetType();
bool b = typeof(st).IsSubclassOf(uType);
Console.Write("BOOL: " + b);
Run Code Online (Sandbox Code Playgroud)
我得到错误,我试图使用变量st作为类型,但st是一种类型.我可以输入实际的类名,"NoVerticalScrollCheckedListBox"但不会给我我想要的信息,因为我希望能够发现的是一个特定的对象实例是从另一个类派生的,而不是该类是否派生自那个抽象的其他类.
我想创建一个方法,例如,它将以特定方式处理从ListBox派生的所有对象,无论它是几个现有子类型之一还是可能出现的新子类型.