簡體   English   中英

C#:基類中的靜態成員

[英]C# : Static Members in Base Class

我在派生類的不同實例中有共同數據。 因此,為了共享公共數據屬性,我在基類中將它們設置為靜態。 但是靜態公共屬性不能在接口中聲明。 如果我們嘗試,我們會收到錯誤:

“無法實現接口成員,因為它是靜態的。”

這種要求是否有任何已知的設計模式或最佳實踐?

你最好使用抽象基類。

接口定義了一個接口。 只要你有任何“真實”,無論是方法實現還是共享數據,你都需要一個類,在這種情況下是一個抽象類。

替代方案是保留接口,但添加單例以保存與實現接口的類相關的數據。 如果您需要使用界面,那么我認為這是可行的方法。 只需命名單例,就可以明顯地將它邏輯地鏈接到接口和文檔,接口的實現應該使用它。

在你的情況下,帶有數據的靜態類可能就足夠了,而不是完整的單例實現,但我不會在這里討論,整個“靜態類與單例”是一個有爭議的主題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM