Попытка переопределить 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
Если вы добавите пробелы впереди, это будет напечатано таким образом.
Я обычно делаю это так.
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);
@ перед строкой отключает стандартное форматирование строк 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);
Решение от 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
*/