原創(chuàng)|使用教程|編輯:郝浩|2013-10-17 09:53:07.000|閱讀 489 次
概述:本文演示了CodeRush如何快速自動生成ToString() 并輸出每個類屬性的名稱和值。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
之前有客戶問到:CodeRush 能不能快速自動生成ToString()?如果它還能輸出每個類屬性的名稱和值就更好了。經(jīng)過仔細研究,我終于找到了最快捷的方式,下面在這里分享給大家。
我采用的方法是創(chuàng)建模板。一共要創(chuàng)建三個模板:Iterating Template,Item Template和Delimiting Template。
如前所述,Iterating Template是直接由用戶來調(diào)用的,所以必須得取個比較好的名字。我不是很擅長于取名,這里我將它命名為ToStringPropertyMethod。當用戶輸入ToStringPropertyMethod并按下空格鍵,這個模板便會被調(diào)用。
這是模板的主體:
public override string ToString() { return «ForEach(Property,PropertyEach,,PropertySeparator)»; }
這段代碼是由CodeRush解析的TextCommand。TextCommand由'ForEach'調(diào)用,最多需要5個參數(shù)。在這個例子中我們只需要3個參數(shù)就可以了。
PropertyEach模板的內(nèi)容要復雜一些:
"«?Get(itemName)»: " + «?Get(itemName)».ToString()
這表示可以創(chuàng)建一些代碼釋放出來的迭代屬性的代表性字符串。
每一次«?ForEach» StringProvider找到新的屬性,它就會設置itemName為屬性的名稱。這給了我們手動訪問的方法,還可以將它放到我們的代碼中。
以下類中擴展ToStringPropertyMethod模板:
public class Example { public string PropertyName1 { get; set; } public string PropertyName2 { get; set; } public string PropertyName3 { get; set; } }
會得到以下結(jié)果:
public class Example { public string PropertyName1 { get; set; } public string PropertyName2 { get; set; } public override string ToString() { return "PropertyName1: " + PropertyName1.ToString() + "PropertyName2: " + PropertyName2.ToString(); } }
這段代碼會在調(diào)用時輸出每個類屬性的名稱和值,這樣就可以快速生成ToString()了。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件