5

以下代码片段是否等效?

class a
{}

class b:a
{}

b foo=new b();

//它来了

foo is a

//...是相同的...

typeof(a).isinstanceoftype(foo)

或者也许其他类型方法之一映射更接近 is 运算符。例如“IsAssignableFrom”或“IsSubclassOf”

4

3 回答 3

6

不是,因为它is可以容忍左侧的空引用。

于 2010-09-05T20:12:01.723 回答
4

它与is被翻译成isinst操作码不同,而IsInstanceOfType.

于 2010-09-05T20:20:58.293 回答
3

不,这不对。实际上,如果您仔细IsInstanceOfType观察,您会发现第一行代码实际上使用 进行了比较is,这将有效地导致StackOverflowException如果是这种情况。

is运算符导致isinstIL 代码中的操作。

于 2010-09-05T20:21:18.463 回答