在类树中,比如A继承于B,B继承于C,...,H继承与G。请问C#中如何判断G是否是派生于E?
解决方案 »
- 如何在软件发布打包时加入数据库安装与建立
- 使用AvalonDock制作WPF多标签的时候,如何将其他窗体放入这个AvalonDock的Panel? 谢谢
- c# 在Form1类里添加了combobox1空间,怎么在其它类里面调用combox1的方法,只有一个窗体
- C# 实现将excel (2007版的)数据导入界面或者datatable
- 内存溢出异常
- [散分]鉴于2个裤衩的都有散分的觉悟,而我却...
- 如何截取任意程序中选中区域成为图片(C#)?
- 清空DATATABLE为什么慢?
- c#局域网考试系统c/s结构
- 十万火急,怎么在菜单拦里添加图标
- ASP.NET编译时提示:“System.Web.UI.WebControls.TemplateColumn”内不允许包含文字内容,高手帮忙!!!
- 毕业设计求助关于图片显示
if (g is E)
{
//G类派生于E
}
expression is type
其中:
expression
引用类型的表达式。
type
类型。
备注
如果满足下列两个条件,则 is 表达式计算为 true 值:
expression 非 null。
expression 可以被转换为 type。也就是说,将完成形式 (type)(expression) 的转换表达式而不引发异常。有关更多信息,请参见 7.6.6 强制转换表达式。
如果已知 expression is type 表达式总是为 true 或总是为 false,则会发出编译时警告。
不能重载 is 运算符。
请注意,is 运算符只考虑引用转换、装箱转换和取消装箱转换。is 运算符不考虑其他转换(如用户定义的转换)。
示例
// cs_keyword_is.cs
// The is operator
using System;
class Class1
{
}class Class2
{
}public class IsTest
{
public static void Test (object o)
{
Class1 a;
Class2 b; if (o is Class1)
{
Console.WriteLine ("o is Class1");
a = (Class1)o;
// do something with a
}
else if (o is Class2)
{
Console.WriteLine ("o is Class2");
b = (Class2)o;
// do something with b
}
else
{
Console.WriteLine ("o is neither Class1 nor Class2.");
}
}
public static void Main()
{
Class1 c1 = new Class1();
Class2 c2 = new Class2();
Test (c1);
Test (c2);
Test ("a string");
}
}
输出
o is Class1
o is Class2
o is neither Class1 nor Class2.
if (typeof(System.Web.UI.Page).IsSubclassOf(typeof(Object)))
{
//
}