このコードで何が起こっているのかを説明してください(//動作しません) Equals ==演算子の代わりに。しかし、私はここでいくつかの理解を欠いています。ありがとう。C#ArrayListの項目(連結文字列)と比較したときの文字列の比較が機能しない
編集:ここでの目標は、コンパイラ/ランタイムレベルで何が起こっているのかを詳しく知りたいのではなく、機能させることです。
string first = "string1";
string full = first + " string2";
Debug.Assert(full == "string1 string2", "Expected to be same.");//WORKS
Debug.Assert(first + " string2" == "string1 string2", "Expected to be same.");//WORKS
var list = new ArrayList();
list.Add(full);
list.Add(first + " string2");
Debug.Assert(list[0] == "string1 string2", "Expected to be same.");//DOESN'T WORK
Debug.Assert(list[1] == "string1 string2", "Expected to be same.");//DOESN'T WORK
list.Add("string1 string2");
Debug.Assert(list[2] == "string1 string2", "Expected to be same.");//WORKS
なぜ 'ArrayList'を使用していますか? .NET 1.1のプログラムとの下位互換性のためには.NETフレームワーク内にあり、新しい開発には使用しないでください。 –
右しかし、これは生産コードではありません。私がコンパイラ/ランタイムレベルで何が起こっているのかを理解しようとしているうちに、私は動き出していました。 –
'string'ではなく' object'に文字列を格納するだけで、同じ状況を作り直すことができます –