C# 在ToString方法C中的类变量之间插入空格#

C# 在ToString方法C中的类变量之间插入空格#,c#,tostring,C#,Tostring,我想让用户能够打印客户端的副本,如果他们愿意的话。我正在考虑将整个类对象转换为字符串,然后设置为富文本框控件,格式如下: Name: blah blah Age: blah blah Email: blah blah Description: blah blah blah blah blah blah blah blah 是否有一种简单的方法来完成行距/特殊格式 提前感谢,, Ari使用,例如: string.Format("{0}: {1}{2}", "Name", this.Name

我想让用户能够打印客户端的副本,如果他们愿意的话。我正在考虑将整个类对象转换为字符串,然后设置为富文本框控件,格式如下:

Name: blah blah

Age: blah blah

Email: blah blah

Description: blah blah blah
blah blah blah blah blah
是否有一种简单的方法来完成行距/特殊格式

提前感谢,, Ari使用,例如:

string.Format("{0}: {1}{2}", "Name", this.Name, Environment.NewLine);
用于获取正确的换行符。

可用于提供自定义格式:

class YourClass
{
    public override string ToString()
    {
        return String.Format(CultureInfo.CurrentCulture,
                             "Description: {0} {1}{2}{3}",
                             this.Name,
                             this.Age,
                             Environment.NewLine,
                             this.Email);
    }
}
这将输出:

Description: Name 
Age Email

我假设您有一个名为Person的类,您可以重写
ToString
方法,通过反射获取所有道具值并将其打印出来,因此添加新属性不会导致代码中的任何更改:

        public override string ToString()
        {
            var props = GetType().GetProperties();

            string result = "";
            foreach (var prop in props)
            {
                var val = prop.GetValue(this, null);
                var strVal = val != null ? val.ToString() : string.Empty;
                result += prop.Name + " : " + strVal + Environment.NewLine;
            }
            return result;
        }

    }
你们也可以序列化它,只需在客户端进行反序列化,把类标记为可序列化就很容易了

    public override string ToString()
    {
        return string.Join(Environment.NewLine, 
          GetType().GetProperties().Select( 
             item => item.Name + ": " + (item.GetValue(this, null) ?? string.Empty).ToString()
             ));
    }