我正在尝试在引号内使用引号。它在文本框内部工作,但不在我需要字符串的地方。例如,第一行代码可以工作,但我需要将字符串作为变量。
pictureBox1.Image = MediaLib.Get["chestarmor_105"];
但接下来的3个没有。我最终尝试使用richTextBox1.Text作为变量,因为它看起来很好而没有运气。
string chestArmor = "chestarmor_105";
richTextBox2.Text = "\"" + chestArmor + "\"";
pictureBox1.Image = MediaLib.Get[richTextBox2.Text];
我尝试了许多不同的“变体”。我错过了什么?谢谢。
答案 0 :(得分: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];