9

试图在我的一个类中覆盖一个 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
4

5 回答 5

14

如果您在前面添加空格,它将以这种方式打印。

我通常是这样做的。

   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);
于 2010-04-13T09:44:31.023 回答
6

字符串前的 @ 关闭标准 C# 字符串格式,尝试

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

您不能使用 @使用 \n、\t 等。

编辑

这是-恕我直言-尽善尽美

 return string.Format("name = {0}\n" + 
                      "ID = {1}\n" + 
                      "sec nr = {2}\n" + 
                      "acc nr = {3}", 
                       string, int, int ,int); 
于 2010-04-13T09:44:50.093 回答
4

来自 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
*/
于 2010-04-20T09:00:23.463 回答
1
String.Join(Environment.NewLine, value.Select(i => i)

其中值是字符串的集合

于 2015-04-09T12:11:49.163 回答
0

不,这是你在那里的所有空间。

于 2010-04-13T09:45:41.623 回答