私の質問がばかげていると申し訳ありません。C# - なぜObjectクラスにはtrue演算子がありませんか?
C++、このコードの動作では:C#ので
Foo* foo = new Foo();
if (foo)
....;
else
....;
、これは動作しません:
Object obj = new Object();
if (obj)
....;
else
....;
Object
クラスは暗黙のうちに、明白な(bool
にそのことについては問題に変換することはできませんので、 )、それはtrue
オペレータを実装していません。
私はなぜObject
がtrue
演算子を実装していないのですか(自分自身がヌルかどうかをチェックし、十分に簡単な音です)?それは単にコードの可読性などのためですか?
私は、c/C++では、オブジェクトであるかどうかにかかわらず、 'obj'がnullでないことをテストしていると思います。例えば'if(somePointerToCharArray)'がc/C++コードでGuard演算子を等しく渡す – MickyD
C++にブール型データ型がありません。 'if'は、整数値がゼロかどうかをチェックするだけです。 –
@NiyokoYuliawan _ "C++にブール型のデータ型がありません" _ - 不正です。 http://stackoverflow.com/a/356728/585968 – MickyD