/ / double-quotes „” ”? - c #, ciąg znaków, podwójne cudzysłowy

podwójne cudzysłowy "" "? - c #, string, double-quotes

Próbuję użyć cudzysłowów wewnątrz cudzysłowów. Działa wewnątrz pola tekstowego, ale nie tam, gdzie potrzebuję ciąg. Na przykład działa pierwszy wiersz kodu, ale ciąg musi być zmienną.

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

ale kolejne 3 „nie”. Skończyło się na próbie użycia richTextBox1.Text jako zmiennej, ponieważ wydaje się tam dobrze bez powodzenia.

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

Próbowałem wielu różnych odmian. Czego mi brakuje? Dzięki.

Odpowiedzi:

5 dla odpowiedzi № 1

Podwójne cudzysłowy w pierwszym wierszu są artefaktem składniowym kompilatora umożliwiającym odróżnienie literału łańcuchowego od nazwy zmiennej. Nie ma ich w ciągu; ciąg jest chestarmor_105, bez podwójnych cytatów.

Jeśli piszesz

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

kompilator tak pomyśli chestarmor_105 reprezentuje identyfikator; załączasz chestarmor_105 w podwójnych cudzysłowach, aby powiedzieć kompilatorowi, że tychcę używać tego dosłownie jako ciągu 14 znaków, a nie jako nazwy zmiennej. Następnie kompilator usuwa podwójne cudzysłowy i używa wartości jako łańcucha.

To powinno działać:

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