C#IronPython isinstance()的等价物

C#IronPython isinstance()的等价物,c#,ironpython,C#,Ironpython,IronPython的C#等价物是什么(…)?你指的是这样的东西吗 object o = "hello"; if (o is string) { //do something with a string } 例如,这将检查某个对象是否是字符串。如果你的意思是其他的,请向那些不熟悉ironPython的人更好地解释。你的意思是这样的吗 object o = "hello"; if (o is string) { //do something with a string } 例如

IronPython的C#等价物是什么(…)?

你指的是这样的东西吗

object o = "hello";
if (o is string)
{
    //do something with a string
}

例如,这将检查某个对象是否是字符串。如果你的意思是其他的,请向那些不熟悉ironPython的人更好地解释。

你的意思是这样的吗

object o = "hello";
if (o is string)
{
    //do something with a string
}

例如,这将检查某个对象是否是字符串。如果您是指其他内容,请向那些不熟悉ironPython的人更好地解释。

您应该能够做到:

if (x is Type) {
  ...
}
例如:

object b = new Button();


if (b is Button) {
   throw new Exception("Button encountered.");
}

你应该能够做到:

if (x is Type) {
  ...
}
例如:

object b = new Button();


if (b is Button) {
   throw new Exception("Button encountered.");
}

您可以尝试使用反射

bool instance = something.GetType().IsInstanceOfType(SomeObject);
正如@Shadow Wizard所指出的,您可以像这样做:

bool isntance = something is SomeObject;
Type typeObject = x as Type;
if(typeObject != null)
{
    ...
}
if(x is Type)
{
    Type typeObject = (Type)x;
    ...
}

您可以尝试使用反射

bool instance = something.GetType().IsInstanceOfType(SomeObject);
正如@Shadow Wizard所指出的,您可以像这样做:

bool isntance = something is SomeObject;
Type typeObject = x as Type;
if(typeObject != null)
{
    ...
}
if(x is Type)
{
    Type typeObject = (Type)x;
    ...
}

如果您的目标是真正投射对象,您应该这样做:

bool isntance = something is SomeObject;
Type typeObject = x as Type;
if(typeObject != null)
{
    ...
}
if(x is Type)
{
    Type typeObject = (Type)x;
    ...
}
第一行尝试强制转换对象“x”,如果未成功,typeObject将具有空值。 这种方法比is操作符更好,因为它只会强制转换对象一次。 is方法尝试强制转换对象,如果成功,则返回true,但通常在内部,如果您将再次这样强制转换对象:

bool isntance = something is SomeObject;
Type typeObject = x as Type;
if(typeObject != null)
{
    ...
}
if(x is Type)
{
    Type typeObject = (Type)x;
    ...
}

在这段代码中,实际上有两个强制转换,一个在is操作符中,另一个在if中。

如果您的目标是真正强制转换对象,您应该这样做:

bool isntance = something is SomeObject;
Type typeObject = x as Type;
if(typeObject != null)
{
    ...
}
if(x is Type)
{
    Type typeObject = (Type)x;
    ...
}
第一行尝试强制转换对象“x”,如果未成功,typeObject将具有空值。 这种方法比is操作符更好,因为它只会强制转换对象一次。 is方法尝试强制转换对象,如果成功,则返回true,但通常在内部,如果您将再次这样强制转换对象:

bool isntance = something is SomeObject;
Type typeObject = x as Type;
if(typeObject != null)
{
    ...
}
if(x is Type)
{
    Type typeObject = (Type)x;
    ...
}

在这段代码中实际上有两个强制转换,一个在is操作符中,一个在if中。

对于我们这些知道C#,但不知道Python的人来说,instanceOf到底做什么?
MyInstance is IMyInterface
?您是在看“常规”对象还是类型对象?对于我们这些了解C#,但不了解Python的人来说,instanceOf到底做什么?
MyInstance是IMyInterface
?您是在看“常规”对象还是类型对象?您可以通过
strings=(string)ostrings=(string)o在注释上方。我认为
操作员正在这样做。。不是吗?我想
操作员就是这么做的。。不是吗?