новая строка в многострочной строке

Попытка переопределить tostring в одном из моих классов.

 return string.Format(@" name = {0}
                         ID = {1}
                         sec nr = {2}
                         acc nr = {3}", string, int, int ,int); // types

Но вещь, результат не выровненный при распечатывании:

name = test
                                   ID = 42
                                   sec nr = 11
                                   acc nr = 55

Попытка добавить \n просто распечатывает его без форматирования. Предположение его имеет некоторое отношение"", который я использую для мультивыравнивания.

Хотел бы, чтобы это распечатало:

name = test
ID = 42
sec nr = 11
acc nr = 55
8
задан Milan 13 April 2010 в 09:41
поделиться

4 ответа

Если вы добавите пробелы впереди, это будет напечатано таким образом.

Я обычно делаю это так.

   return string.Format(
@" name = {0}
 ID = {1}
 sec nr = {2}
 acc nr = {3}", string, int, int ,int); // types

Обновление: возможно более красивая альтернатива:

string[] lines = 
{
  " name = {0}",
  " ID = {1}",
  " sec nr = {2}",
  " acc nr = {3}"
};

return string.Format(
         string.Join(Environment.Newline, lines), 
         arg0, arg1, arg2, arg3);
14
ответ дан 5 December 2019 в 06:37
поделиться

Нет, это все места, которые у вас там есть.

0
ответ дан 5 December 2019 в 06:37
поделиться

@ перед строкой отключает стандартное форматирование строк C#, попробуйте

 return string.Format(" name = {0}\n ID = {1} \n sec nr = {2} \n acc nr = {3}", 
                      string, int, int ,int); // types

Вы не можете использовать @ ииспользуйте \n, \t и т.д.

EDIT

Это - IMHO - настолько хорошо, насколько это возможно

 return string.Format("name = {0}\n" + 
                      "ID = {1}\n" + 
                      "sec nr = {2}\n" + 
                      "acc nr = {3}", 
                       string, int, int ,int); 
6
ответ дан 5 December 2019 в 06:37
поделиться

Решение от msdn:

// Sample for the Environment.NewLine property
using System;

class Sample 
{
    public static void Main() 
    {
    Console.WriteLine();
    Console.WriteLine("NewLine: {0}  first line{0}  second line{0}  third line",
                          Environment.NewLine);
    }
}
/*
This example produces the following results:

NewLine:
  first line
  second line
  third line
*/
4
ответ дан 5 December 2019 в 06:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: