C #: как создавать строки - PullRequest
2 голосов
/ 06 мая 2010

Что из этого даст правильный результат:

(1)

int X = 23;
string str = "HELLO" + X.ToString() + "WORLD";

(2)

int X = 23;
string str = "HELLO" + X + "WORLD";

(3)

int X = 23;
string str = "HELLO" + (string)X + "WORLD";

РЕДАКТИРОВАТЬ: «правильный» результат для str для оценки: HELLO23WORLD

Ответы [ 3 ]

7 голосов
/ 06 мая 2010
int X = 23;
string str = string.Format("HELLO{0}WORLD", X);
4 голосов
/ 06 мая 2010

Опция 3 не компилируется, потому что вы не можете разыграть int до string.

Два других дают одинаковый результат. Однако есть небольшая разница.

Внутренне оператор плюс компилирует вызов String.Concat. Concat имеет различные перегрузки. Вариант 1 вызывает Concat(string, string, string), в то время как вариант 2 вызывает Concat(object, object, object) с двумя строками и упакованным int. Внутренне Concat затем вызывает ToString в упакованном int.

Также проверьте этот связанный вопрос: Строки и целые, явные и неявные

1 голос
/ 18 мая 2010

Вы также можете использовать StringBuilder:

System.Text.StringBuilder str = new System.Text.StringBuilder();
str.Append("HELLO"); 
str.Append(X); 
str.Append("World");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...