2016-01-25 60 views
1

我有一個名爲Manager的類和另一個名爲EmployeeFileHandler的類繼承自IFileHandler在多個類之間共享一個類

我希望創建一個新類EmployeeInfo,我可以從ManagerEmployeeFileHandler中訪問static-way。但是,據我所知,static關鍵字不能應用於繼承/編輯類。

這可以以任何方式完成嗎?

+0

您的EmployeeFileHandler必須是靜態的嗎? – Gnqz

+0

不,我的意思是'EmployeeInfo'將是靜態的,而不是'EmployeeFileHandler' – Idanis

回答

3

由於C#不支持多重繼承,您可以通過做到這一點:

  1. 有兩種情況爲您EmployeeInfohas a關係,而不是is a關係)。

    public class EmployeeInfo { 
        public static Manager Manager = new Manager(); 
        public static EmployeeFileHandler EmployeeFileHandler = new EmployeeFileHandler(); 
    } 
    

    因此,無論何時您需要訪問Manager類方法,您使用Manager例如,每當你需要訪問EmployeeFileHandler方法,您使用EmployeeFileHandler實例。

  2. ,或者,您可以創建EmployeeInfoManager繼承和貫徹IFileHandler

    public class EmployeeInfo : Manager, IFileHandler 
    

    這是確定的接口,提供了比IFileHandler

EmployeeFileHandler沒有額外的方法
+0

你是什麼意思,說「有關係,而不是關係」?你能解釋一下嗎? – Idanis

+0

有一種關係意味着它不是從那個類派生的,但是擁有那個類。例如。鮑勃是一個男人,因此它擁有所有曼的方法。但鮑勃有一把剪刀,這意味着他可以用剪刀做他想做的事。一個(是)意味着你繼承,但另一個(具有)意味着你擁有它。在C#中,它看起來非常不同,在第一個選項中查看我的示例 – Ian

+0

,就像將'EmployeeFileHandler'放在'Manger'下面那樣,不是嗎?我的'經理'是我的'ViewModel'。在這個類中,我想創建/編輯'EmployeeInfo',然後使用'EmployeeFileHandler'來從/ EmployeeInfo文件寫入/加載 - 我希望創建一個分離。我不希望數據與'ViewModel'或'FileHandler'混合。 – Idanis