2011-03-29 53 views
5

我有一個使用許多全局常量的項目。最終,我計劃提取程序的某些部分並創建它自己的程序集。將常量移動到單獨的程序集中

是不是還值得(或這可能嗎?)單獨創建一個全局常量的組件(即,GlobalConstants.dll),這樣我可以在未來會議使用該程序集?

這種方法將幫助我少做編碼,我可以保持相同的名稱爲整個項目的常量。

回答

4

您預計有多少個項目可以使用相同的常量?如果有真的一個案件,那麼罰款;否則......不。

當然,如果你有一些同樣可能被重用實用程序庫,那麼它們可能在那裏有意義,只要適當的命名空間和類型範圍。個人而言,直到我有一個實際,具體的目的在移動他們,我會讓他們孤單。

11

雖然它肯定是可以做的,甚至是一個不錯的主意,你應該知道的是,C#編譯器將常量的值而不是引用的事實。

有了這個,我的意思是,在C#編譯器將取代所有不斷的情況下,在你的代碼和取代的「變量」與價值。

這意味着即使您更新程序集GlobalConstants.dll並將其複製到您擁有的某個應用程序,您也需要重新編譯該應用程序。不這樣做,會導致應用程序使用舊的常量值。

爲了克服這個問題,可以簡單地使用public static readonly代替public const作爲readonly改性劑從const不同之處在於它是由C#編譯器中代碼的引用,而不是一個值進行處理。

1

一個原因裝配創建一個單獨的常量是允許「不太複雜」的更新,例如錯誤消息和本地化,您可以更新組件的修補程序,減少破別的風險。

有用一般來說,我們找到共享的常量是具有包含全局常量的商業實體層構造 - 業務實體是我們弓的唯一層。可以通過(大部分)圖層訪問。

具有單獨的組件引起開銷,這取決於常數你有,你可能有一些是直接依賴於功能 - 例如。一個可用於在Hashtable中查找值的鍵。

相關問題