Nesnenin D'deki belirli bir sınıfın örneği olduğunu nasıl sınayabilirim?Bir nesnenin D'deki belirli bir sınıfın örneği olduğunu nasıl sınayabilirim?
Javascript'in instanceof
anahtar kelimesiyle ilgili bir şey var mı?
Nesnenin D'deki belirli bir sınıfın örneği olduğunu nasıl sınayabilirim?Bir nesnenin D'deki belirli bir sınıfın örneği olduğunu nasıl sınayabilirim?
Javascript'in instanceof
anahtar kelimesiyle ilgili bir şey var mı?
cast
'u kullanın. Bir alt sınıfa döktüğünüzde (C++ 'nin dynamic_cast gibi) bir örneği olmadığında boş bir değer döndürür. örneği (miras hiyerarşisini dikkate alınmadan) bazı kesin türü ise
auto a = new Base;
auto b = cast(Child) a;
assert(b is null);
a = new Child;
auto c = cast(Child) a;
assert(c !is null);
typeid expression söyleyebilirim: Bir nesne özellikle tip _exactly_ olup olmadığını kontrol etmek kullanılabilecek
class A {}
class B : A {}
void main()
{
A a = new B();
// dynamic
assert(typeid(a) == typeid(B));
// static
assert(typeid(typeof(a)) == typeid(A));
}
, bu kadar olmasa da bir belirli bir türün örneği. 'typeid (a) == typeid (A)' 'false 'olur. Bunun hakkında "temiz" bir şey yok. Oldukça farklı bir şey kontrol ediyor. –
Ah, afedersiniz, sonra yanlış anladım. Benim için "bir tür tam olarak" == "bir türün örneğidir", ingilizcemi geliştirmem gerekiyor gibi görünüyor :( Upvoted eco'nun cevabı. –
@ Михаил Страшун Bu, genel terminolojiden daha fazla programlama terminolojisi ve Biraz kafa karıştırıcı olabilir, ancak genellikle "örneği" terimi, bir türün belirli bir tür olup olmadığını veya bu türden _exactly_ tipine karşılık olarak türetilmiş olup olmadığına işaret eder. –