私はとについて知っていis
ますが、リフレクティブisInstance()メソッドはどうですか?as
instanceof
76889 次
5 に答える
185
bool result = (obj is MyClass); // Better than using 'as'
于 2008-11-12T05:12:24.740 に答える
53
C#のJavaに相当するものは次のobj.getClass().isInstance(otherObj)
とおりです。
bool result = obj.GetType().IsAssignableFrom(otherObj.GetType());
JavaとC#はどちらも(via vs )の実行時型オブジェクト( java.lang.Class
Java≣C#System.Type
)で動作しますが、Javaはオブジェクトを引数として取りますが、C#は別のオブジェクトを期待します。obj
.getClass()
.getType()
isInstance
IsAssignableFrom
System.Type
于 2008-11-11T23:13:08.473 に答える
39
is
場合によっては、キャストの結果を使用したくない場合に使用し、使用する場合に使用as
します。次のように書きたいと思うことはほとんどありません。
if(foo is Bar) {
return (Bar)foo;
}
それ以外の:
var bar = foo as Bar;
if(bar != null) {
return bar;
}
于 2008-11-12T05:30:53.157 に答える
2
以下のコードは に代わるものIsAssignableFrom
です。
parentObject.GetType().IsInstanceOfType(inheritedObject)
MSDN のType.IsInstanceOfType の説明を参照してください。
于 2015-12-28T12:52:57.437 に答える
2
頭のてっぺんから、次のこともできます。
bool result = ((obj as MyClass) != null)
どちらがより良いパフォーマンスを発揮するかはわかりません。ベンチマークは他の人に任せます:)
于 2008-11-12T01:10:18.457 に答える