在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