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