什么是IronPython的{C#等价物isinstance(...)
?
答案 0 :(得分:2)
你应该能够做到:
if (x is Type) {
...
}
例如:
object b = new Button();
if (b is Button) {
throw new Exception("Button encountered.");
}
答案 1 :(得分:2)
如果您的目标是真正投射对象,您应该这样做:
Type typeObject = x as Type;
if(typeObject != null)
{
...
}
第一行尝试转换对象“x”,如果不成功,则typeObject将具有null值。 这种方法比is运算符更好,因为它只会抛出一次对象。 方法是尝试转换对象,如果成功则返回true,但通常在if中你将再次强制转换为:
if(x is Type)
{
Type typeObject = (Type)x;
...
}
在这段代码中,实际上有两个强制转换,一个在is运算符中,另一个在if。
中答案 2 :(得分:1)
你是说这个意思吗?
object o = "hello";
if (o is string)
{
//do something with a string
}
这将检查某个对象是否为字符串。如果你的意思是其他的,请更好地解释那些不熟悉ironPython的人。
答案 3 :(得分:0)
您可以尝试使用反射。
bool instance = something.GetType().IsInstanceOfType(SomeObject);
正如@Shadow Wizard指出的那样,你可以做同样的事情:
bool isntance = something is SomeObject;