Saya tahu is
dan as
untuk instanceof
, tapi bagaimana dengan metode isInstance () reflektif ?
c#
reflection
introspection
instanceof
diegog
sumber
sumber
is
Sebaliknya, diperlukan nama tipe. Inilah yang diinginkan OP: setara dengan JavaisInstance
. Jawaban lainnya salah meskipun jumlah upvote yang konyol.bool result = (obj is MyClass); // Better than using 'as'
sumber
new Child() is Parent
)Tergantung, gunakan
is
jika Anda tidak ingin menggunakan hasil gips dan gunakanas
jika Anda melakukannya. Anda hampir tidak pernah ingin menulis:if(foo is Bar) { return (Bar)foo; }
Dari pada:
var bar = foo as Bar; if(bar != null) { return bar; }
sumber
di luar kepala saya, Anda juga bisa melakukan:
bool result = ((obj as MyClass) != null)
Tidak yakin mana yang berkinerja lebih baik. Saya akan menyerahkannya kepada orang lain untuk melakukan benchmark :)
sumber
Kode di bawah ini bisa menjadi alternatif
IsAssignableFrom
.Lihat Deskripsi Type.IsInstanceOfType di MSDN.
sumber