C# 测试一个类是否是另一个类的子类型
本文关键字:是否是 另一个 类型 一个 测试 | 更新日期: 2023-09-27 17:55:12
这看起来很像我写的另一篇文章,但我正在用C#编写类似的程序。我有卡类和类土地,这是卡的一个子类。在Java中,我使用instanceof
来确定它是否是Card的子级。所引用的对象保存在变量c
我已经尝试过:
if (typeof (Land).isSubClassOf(typeof(Card))){
//random code
}
在Java中,我正在尝试做的是:
if ( c instanceof Land){
}
if(foo is Bar) {
return (Bar)foo;
}
对于直接继承:
static void Main(string[] args)
{
Land c = new Land();
bool isCard = c.GetType().IsSubclassOf(typeof(Card));
}
或:
static void Main(string[] args)
{
Land c = new Land();
bool isCard = c is Card;
}
不要先检查类型,然后再进行强制转换。如果你这样做,你实际上是在检查类型两次。这样做:
var l = c as Land;
如果c
可以转换为Land
则l
将包含该内容。如果没有,它将null
.
如果这样做:
if(c is Land)
l = (Land)c;
然后你实际上是在检查c
两次。一次检查它是否属于Land
型,然后再次进行实际的转换。
C# As 关键字