我有一個使用許多全局常量的項目。最終,我計劃提取程序的某些部分並創建它自己的程序集。將常量移動到單獨的程序集中
是不是還值得(或這可能嗎?)單獨創建一個全局常量的組件(即,GlobalConstants.dll),這樣我可以在未來會議使用該程序集?
這種方法將幫助我少做編碼,我可以保持相同的名稱爲整個項目的常量。
我有一個使用許多全局常量的項目。最終,我計劃提取程序的某些部分並創建它自己的程序集。將常量移動到單獨的程序集中
是不是還值得(或這可能嗎?)單獨創建一個全局常量的組件(即,GlobalConstants.dll),這樣我可以在未來會議使用該程序集?
這種方法將幫助我少做編碼,我可以保持相同的名稱爲整個項目的常量。
您預計有多少個項目可以使用相同的常量?如果有真的一個案件,那麼罰款;否則......不。
當然,如果你有一些同樣可能被重用實用程序庫,那麼它們可能在那裏有意義,只要適當的命名空間和類型範圍。個人而言,直到我有一個實際,具體的目的在移動他們,我會讓他們孤單。
雖然它肯定是可以做的,甚至是一個不錯的主意,你應該知道的是,C#編譯器將常量的值而不是引用的事實。
有了這個,我的意思是,在C#編譯器將取代所有不斷的情況下,在你的代碼和取代的「變量」與價值。
這意味着即使您更新程序集GlobalConstants.dll
並將其複製到您擁有的某個應用程序,您也需要重新編譯該應用程序。不這樣做,會導致應用程序使用舊的常量值。
爲了克服這個問題,可以簡單地使用public static readonly
代替public const
作爲readonly
改性劑從const
不同之處在於它是由C#編譯器中代碼的引用,而不是一個值進行處理。
一個原因裝配創建一個單獨的常量是允許「不太複雜」的更新,例如錯誤消息和本地化,您可以更新組件的修補程序,減少破別的風險。
有用一般來說,我們找到共享的常量是具有包含全局常量的商業實體層構造 - 業務實體是我們弓的唯一層。可以通過(大部分)圖層訪問。
具有單獨的組件引起開銷,這取決於常數你有,你可能有一些是直接依賴於功能 - 例如。一個可用於在Hashtable中查找值的鍵。