この文書の現在のバージョンと選択したバージョンの差分を表示します。
次のリビジョン | 前のリビジョン | ||
演算子 [2009/01/31 15:50] 192.168.0.63 作成 |
— (現在) | ||
---|---|---|---|
ライン 1: | ライン 1: | ||
- | ====== ==演算子 ====== | ||
- | |||
- | a==bの評価 | ||
- | |||
- | - a,bが共にハンドルの場合 | ||
- | - a,bが共にString^の場合 | ||
- | * 文字列の比較が行われる。 | ||
- | |||
- | 1-2,a,bが共にdelegate^の場合 | ||
- | |||
- | delegateの中身の関数の比較が行われる。 | ||
- | |||
- | 1-3,aがString^かdelegate^でbがそれ以外のハンドルの場合 | ||
- | |||
- | ハンドルの比較が行われる。 | ||
- | |||
- | 1-4,a,bが共にString^でもdelegate^でもない場合 | ||
- | |||
- | ハンドルの比較が行われる。 | ||
- | |||
- | 2,aがハンドルでbがハンドル以外の場合 | ||
- | |||
- | 2-1,aがString^でbが文字列リテラルの場合 | ||
- | |||
- | 文字列リテラルがString^になり、文字列の比較が行われる。 | ||
- | |||
- | 2-2,aがObject^以外ででbが基本型(value type含む)またはポインターの場合 | ||
- | |||
- | コンパイルエラーになる。 | ||
- | |||
- | 2-3,aがObject^でbが基本型(value type含む)の場合 | ||
- | |||
- | bがボックス化され、ハンドルの比較が行われる。 | ||
- | |||
- | 2-4,aがObject^でbがポインターの場合 | ||
- | |||
- | コンパイルエラーになる。 | ||
- | |||
- | - aもbもハンドルでない場合 | ||
- | |||
- | C++と同じように行われる。 | ||
- | <code cpp> | ||
- | using namespace System; | ||
- | ref class C { | ||
- | int i; | ||
- | }; | ||
- | delegate void mydelegate(); | ||
- | void func() | ||
- | { | ||
- | return; | ||
- | } | ||
- | int main(array<System::String ^> ^args) | ||
- | { | ||
- | String^ a = "aaa"; | ||
- | String^ b = "aaa"; | ||
- | Object^ o = "aaa"; | ||
- | C^ c = gcnew C; | ||
- | mydelegate^ d1 = gcnew mydelegate(func); | ||
- | mydelegate^ d2 = gcnew mydelegate(func); | ||
- | | ||
- | if ( a == b ) // true | ||
- | Console::WriteLine(L"Hello World"); | ||
- | if ( d1 == d2 ) // true | ||
- | Console::WriteLine(L"Hello World"); | ||
- | if ( a == o ) // false | ||
- | Console::WriteLine(L"Hello World"); | ||
- | if ( a == "aaa" ) // true | ||
- | Console::WriteLine(L"Hello World"); | ||
- | if ( a == L"aaa" ) // true | ||
- | Console::WriteLine(L"Hello World"); | ||
- | char* p1 = "aaa"; | ||
- | int i=0; | ||
- | // if ( a == p1 ) // compile error | ||
- | // if ( o == p1 ) // compile error | ||
- | // if ( a == 0 ) // compile error | ||
- | // if ( c == 0 ) // compile error | ||
- | if ( o == 0 ) // false | ||
- | Console::WriteLine(L"Hello World"); | ||
- | if ( o == i ) // false | ||
- | Console::WriteLine(L"Hello World"); | ||
- | Object^ oi = 0; | ||
- | if ( oi == 0 ) // false | ||
- | Console::WriteLine(L"Hello World"); | ||
- | // if ( o == p1 ) // compile error | ||
- | if ( "aaa" == "aaa" ) // same as c++, undefined. | ||
- | Console::WriteLine(L"Hello World"); | ||
- | return 0; | ||
- | } | ||
- | </code> |