免責聲明。我不確定標題是否是最好的。我無法想象一個不長不長的更好的那個。請隨時提出改進建議。在枚舉中枚舉是否有一個通用的方法?
當程序員設計一組狀態時,很自然地應用枚舉。在例如平日裏,很明顯,傳統上被接受和直接。但是,有時候,我們還需要將狀態的原因設置爲例如任務管理。我們也有狀態如下:
enum Status { New, Active, Inactive }
,但仍然需要有狀態一個狀態,狀態一個階段或者一個理性的狀態。通常情況下,我想補充了一堆新的枚舉的,像這樣:
enum StatusOfNew { UnseenYet, RefusedToEvenLookAtAndOrQuitTheJob }
enum StatusOfActive { Assigned, Commenced, BeingTested }
enum StatusOfInactive { Done, Trashed, GivenUpOnBecausePeopleKeepQuittingTheJob }
另一種方法是在下列方式的所有組合的一個長長的清單。
enum Status
{
New_UnseenYet, New_RefusedToEvenLookAtAndOrQuitTheJob,
Active_Assigned, Active_Commenced, Active_BeingTested,
Inactive_Done, Inactive_Trashed, Inactive_GivenUpOnBecausePeopleKeepQuittingTheJob
}
然後,我們有優雅的方法,其中每個狀態是其自己的類型與通用超和特定階段/原因。
class New : Status
{
enum Reason
{
UnseenYet,
RefusedToEvenLookAtAndOrQuitTheJob
}
}
考慮到實施的複雜性,維護成本和穩健性增益之間的關係,我可以互相打擊它們。然而,我想知道是否還有其他方法需要考慮,應用的語法或將問題全部排除在外的方法。
主要是,作爲一個MS猴子,我想在C#中看到一種語言特定的解決方案。然而,作爲一個好奇和開放的生物,我也歡迎來自其他語言的建議。我試圖向程序員提出這個問題,但顯然,我的問題太愚蠢了,站點告訴我要避開(沒有褻瀆意圖,錯字是故意的,我喜歡鴨子)。
我完全同意你的觀點。而且,正如我所提到的,我已經評估了複雜性與收益之間的關係。我最感興趣的是是否有更多架構要考慮,我可能錯過了。 –
我明白了。我承認我剛剛閱讀了這個問題的開始,似乎問了這個問題並剔除了這些實現。也許拉出你的問題,並將其置於頂部或底部作爲tl; dr部分的一部分... – jdv
我現在**非常**混合情緒。一方面,我同意你的建議務實(移出實際問題)。另一方面,我倒下了這樣一個浪潮,把三,四段短文分類爲TL,嘿嘿。這真的是一個很長的帖子嗎?我完全不認爲它是短暫的和點對點的? –