溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

【C#懶蛋編程——5分鐘經(jīng)驗分享】03使用Description特性標簽,簡化查找表編寫

發(fā)布時間:2020-05-17 12:21:16 來源:網(wǎng)絡(luò) 閱讀:1491 作者:老G 欄目:游戲開發(fā)

因為篇幅很短,所以嘗試全文字寫法。幾分鐘看完的文字也沒必要用十幾分鐘寫完是吧。

Attribute(特性標簽)是C#中非常有用的一個特性,有用到什么程度呢?以至于C++的很多開發(fā)者,都通過自己的預(yù)處理器和標簽來增加這個功能(典型的如Qt和Unreal)

1.
在各種開發(fā)中,我們經(jīng)常需要使用枚舉來代表一組特性,同時又需要一些文字描述,這些描述可能是路徑,或者是字符串,兩者是一一對應(yīng)的。

比如,我定義了一組材質(zhì),每個對應(yīng)不同的文件加載路徑。或者我定義了一組數(shù)據(jù)類型,每個對應(yīng)不同的字符串簡寫。

我們自己寫的數(shù)據(jù)導(dǎo)出工具中,就有這種寫法。我在枚舉中設(shè)定了很多導(dǎo)出類型,如IntArray,FloatArray等,但是我想要在對應(yīng)的地方,把這些類型輸出為字符串的簡寫,如IntArray輸出為"Int[]",F(xiàn)loatArray輸出為"Float[]"。要完成這一點,兩者需要一個簡單的對應(yīng)關(guān)系。

如何做呢,可以做成Dictionary,也可以寫class,或者做成外部Config,方法很多,但是這些寫法都有一個問題,就是太羅嗦,內(nèi)聚性不夠。

2.
C#中,我們可以使用Description標簽,把需要綁定的字符串內(nèi)容填寫進去,然后寫一個函數(shù),在需要的時候,把枚舉的這個Description抓出來就行了。

之前的寫法,你需要至少一組枚舉值和一個查找表,如果你用class或外部config,你要寫更多東西。

這種寫法下,你只需要一組帶Description標簽的枚舉就行了。那個抓取函數(shù)是提前寫好的,可以重復(fù)使用。代碼非常清晰簡潔,內(nèi)聚很高。至于效率什么的我不擔心,畢竟我的應(yīng)用領(lǐng)域,C#這種寫法一般都是小型的初始化,花上一點代價,讓代碼更清晰是值得的。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI