Подтвердить что ты не робот

С# @"" как мне вставить вкладку?

Недавно я узнал, что могу написать в ", написав два "ex @"abc""def". Я нахожу литерал @string литературным. Но как я могу писать на вкладке или в новой строке?" - это единственный доступный трюк? Я пробовал поиск msdn, но я не смог его найти.

4b9b3361

Ответ 1

Когда вы используете модификатор @, вы используете что-то, называемое строковым литералом.

Это означает, что все, что вы ставите между кавычками открытия и закрытия, будет использоваться в строке.

Это включает Carraige Return, Line Feed, Tab и т.д.

Краткий ответ: просто нажмите вкладку.

Одно из предостережений. Ваша среда IDE может решить вставить пробелы вместо символа табуляции, поэтому вам может быть лучше использовать конкатенацию.

Ответ 2

Ни одна из нормальных escape-последовательностей не работает в стенографических строках (это точка!). Если вам нужна вкладка, вам нужно либо ввести фактический символ табуляции, либо использовать конкатенацию строк:

string x = @"some\stuff" + "\t" + @"some more stuff";

Что вы используете, в первую очередь, для стенографического литерала? Там может быть лучший способ справиться с этим.

Ответ 3

Эта escape-последовательность цитат ("") - это единственный "побег", который работает в дословные строковые литералы. Все остальные escape-последовательности работают только в регулярных строковых литералах.

В качестве обходного пути вы можете использовать что-то некрасивое:

string.Format(@"Foo{0}Bar", "\t");

или включить фактический символ табуляции в строке. Это также должно работать с регулярными строковыми литералами, но пробелы, особенно вкладки, обычно не сохраняются в разных текстовых редакторах: -)

Для строк новой строки это намного проще:

@"Foo
Bar";

Ответ 4

Как только вы начинаете строку с @, вы можете помещать что-либо между ними, а также вкладки или символы новой строки:

string test = @"test

bla

bjkl";

указанная строка будет содержать 4 строки новой строки.

Ответ 5

При использовании синтаксиса @все escape-символы персонажа отключены. Таким образом, чтобы получить вкладку или новую строку, вам придется вставить литерал TAB или новую строку. Это легко - просто нажмите кнопку TAB или ENTER на клавиатуре. Обратите внимание, что вам может потребоваться изменить поведение TAB ir Visual Studio, если для него задано ввести пробелы вместо буквенных символов TAB.

Ответ 6

@перед строкой предполагает, что у вас нет экранирования, поэтому вам нужно объединить:

string value = @"Hello ""big""" +"\t"+ @"world \\\\\";

Иными словами, да "" - единственный доступный трюк.

Ответ 7

Если вы начинаете нуждаться в "специальных" символах внутри вашей строки, возможно, вы должны использовать обычную строку "и избегать их с помощью \, а не с помощью @" ".

Какие данные хранятся в строке? Какую причину вам нужно для этого в @"??

Ответ 8

Просто напишите вкладку или новую строку в своей строке. @"" строковые литералы распознают каждый символ, как он написан в файле кода. Напротив, escape-последовательности не работают.

Ответ 9

Я бы точно не набрал вкладку, потому что вместо этого редактор может вставить несколько пробелов. Использование \t - лучший вариант.

Ответ 10

Самый правильный способ сделать это:

string str = string.Format(
  CultureInfo.CurrentCulture,  // or InvariantCulture
  @"abc{0}cde",
  "\t");

и

string str = string.Format(
  CultureInfo.CurrentCulture,  // or InvariantCulture
  @"abc{0}cde",
  Environment.NewLine);

у вас может быть более одного вида {0} в строке.

Ответ 11

Используйте '\\ t', чтобы избежать первого обратного слэша, тогда он будет интерпретироваться как вкладка. Извините за путаницу... этот сайт избежал первой косой черты... действительно, при редактировании этого есть три слэша....