我正在尋找一種方法來創建某種值類型的分層類結構。我知道枚舉不支持繼承,因爲它們是值類型,因此是封閉的,所以我可能正在尋找某種靜態類實現。C模擬值類型多態性夏普
我的目的是重新定義我正在處理的這個ASP.NET應用程序中的角色。目前,這些角色是字符串常量(ROLE_ADMIN,ROLE_USER等),並放置在會話中並在整個應用程序中進行檢查,如下所示:Person.getRole()== ROLE_ADMIN(實際上是字符串比較)。我想對此進行重構,以便我可以具有類型安全性,以及下面描述的某種多態行爲。
考慮以下角色結構:如果一個人的角色設置到Group1,但頁面上的某個元素只有通過用戶1可見
user1
Group1
user2
Admin
User3
,那麼我想聲明Person.getRole()= = user1爲true。
編輯:
上述結構爲樹的思考,我希望能夠以無論是在葉或節點來定義在葉或節點,並且檢查權限方面的用戶。然而,這引起了困境,根據節點檢查權限是否檢查用戶是屬於組(group1)還是屬於組(Admin)。 我認爲問題在於,將我的樹的根節點命名爲'Admin'是誤導性的,因爲節點應該被認爲是組而不是角色本身。根節點應該是'All',當它被定義爲'All'時,它將繼承樹的所有樹葉,因此屬於所有組。
我要去把我的損失,並放棄這一問題現在。爲了將來的參考,我標出了我認爲最合適的答案。不幸的是,這種改變沒有任何商業原因,並且開始花費太多時間來完成。 – 2009-11-09 14:21:19