2

引用符の中に引用符を使用しようとしています。テキストボックス内では機能しますが、文字列が必要な場所では機能しません。たとえば、コードの最初の行は機能しますが、文字列を変数にする必要があります。

pictureBox1.Image = MediaLib.Get["chestarmor_105"];

しかし、次の3つはそうではありません。運が悪かったので、richTextBox1.Textを変数として使用しようとしました。

string chestArmor = "chestarmor_105";
richTextBox2.Text = "\"" + chestArmor + "\"";
pictureBox1.Image = MediaLib.Get[richTextBox2.Text];

さまざまな「」バリエーションを試しました。私は何が欠けていますか?ありがとう。

4

1 に答える 1

5

最初の行の二重引用符は、コンパイラが文字列リテラルと変数名を区別するための構文アーティファクトです。それらは文字列にはありません。文字列はchestarmor_105、二重引用符なしでです。

あなたが書くなら

pictureBox1.Image = MediaLib.Get[chestarmor_105]; // no quotes

コンパイラはそれがchestarmor_105識別子を表すと考えます。二重引用符で囲んchestarmor_105で、変数名としてではなく、文字通り14文字の文字列として使用することをコンパイラーに通知します。次に、コンパイラは二重引用符を削除し、値を文字列として使用します。

これは機能するはずです:

string chestArmor = "chestarmor_105";
richTextBox2.Text = chestArmor;
pictureBox1.Image = MediaLib.Get[richTextBox2.Text];
于 2012-07-22T02:49:32.383 に答える