在Java世界中,我们有Apache Commons'ToStringBuilder来帮助创建toString()实现。是否有与C#的Java的ToStringBuilder相当的功能?什么是一个好的C#版本功能?
有谁知道C#有一个体面的免费实现吗?有没有更好的选择我不知道?
如果没有免费的实现存在,我想这个问题变得更多的是一个问题“什么会在C#3中成为一个好的ToStringBuilder?”
关闭我的头顶:
,它还可以提供反射和手动的ToString字符串创建。
如果可以使用表达式树,它将会非常酷。
事情是这样的..
public override string ToString()
{
return new ToStringBuilder<Foo>(this)
.Append(t => t.Id)
.Append(t => t.Name)
.ToString();
}
这将返回:
"Foo{Id: 1, Name: AName}"
- 它可以使用System.Reflection.Emit预编译一个ToString委托。
还有其他想法吗?
UPDATE
只是为了澄清ToStringBuilder是不同的生物来的StringBuilder ..我正在寻找一个类似于阿帕奇常见的ToStringBuilder的功能,它具有的功能,如多行的格式,不同的样式和反射基础ToString创建。谢谢。
更新2
我已经建立了我自己。见here。
也许你应该链接到ToStringBuilder所做的描述:http://commons.apache.org/lang/api/org/apache/commons/lang/builder/ToStringBuilder。html – Powerlord 2010-03-10 14:44:04
@Powerlord,谢谢我已经更新了链接,我猜并不是每个人都像我一样喜欢grokking源代码;-) – chillitom 2010-03-10 14:48:20
快速C#4版本添加如下:http://stackoverflow.com/questions/2417647/is-有一个相当于javas-tostringbuilder-for-c-what-will-a-good-c-ver/4959343#4959343 – chillitom 2011-02-10 15:53:01