私はとについて知っていisますが、リフレクティブisInstance()メソッドはどうですか?asinstanceof
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.ClassJava≣C#System.Type)で動作しますが、Javaはオブジェクトを引数として取りますが、C#は別のオブジェクトを期待します。obj.getClass().getType()isInstanceIsAssignableFromSystem.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 に答える