次のコード スニペットは同等ですか?
class a
{}
class b:a
{}
b foo=new b();
//ここに来る
foo is a
//... と同じです...
typeof(a).isinstanceoftype(foo)
あるいは、 is 演算子により近い他の型メソッドのマップの 1 つかもしれません。例: "IsAssignableFrom" または "IsSubclassOf"
次のコード スニペットは同等ですか?
class a
{}
class b:a
{}
b foo=new b();
//ここに来る
foo is a
//... と同じです...
typeof(a).isinstanceoftype(foo)
あるいは、 is 演算子により近い他の型メソッドのマップの 1 つかもしれません。例: "IsAssignableFrom" または "IsSubclassOf"
is
は左側の null 参照を許容するため、そうではありません。
isinstオペコードis
に変換されるのと同じではありませんが、 の通常の仮想呼び出しです。IsInstanceOf
Type
いいえ、ちがいます。実際、覗いてIsInstanceOfType
みると、一番最初のコード行が実際に を使用して比較を実行していることがわかりis
ますStackOverflowException
。
演算子は、IL コードの操作につながりis
ます。isinst