2011-06-14 18 views
0

我在想知道哪種方法可以更好地存儲信息?一箇中心靜態類還是父類?將信息存儲在單個父級或中央靜態類中是否更好

現在我正在存儲它的代碼。我每次都會創建一個新課堂。

父類:

public partial class frmEmployeeManager: Form 
    { 
     List<Employee> lstEmployees = List<Employee>(); 
     public frmEmployeeManager() 
     { 
      InitializeComponent(); 
     } 
     public void updatePay(float Pay, int ID) 
     { 
      //Where ID = ID change the Pay 
      //(Omitted the foreach loop here for brevity) 
     } 
     private void btnDisplayData_Click(object sender, EventArgs e) 
     { 
      frmUpdatePay dlgUpdatePay = new frmUpdatePay(this); 
      dlgUpdatePay.ShowDialog(); 
     } 

    } 

子類:

public partial class frmUpdatePay : Form 
{ 
    private frmEmployeeManager ParentEmployeeManager; 

    public frmUpdatePay(frmEmployeeManager EmployeeManager) 
    { 
     InitializeComponent(); 
     ParentEmployeeManager = EmployeeManager; 
    } 
      AddPersonParent.updatePay(fltPayInput, intID); 
} 
+1

這取決於,我不認爲你已經充分描述了你的場景以確定哪個是最好的。如果您有充足的理由擁有一個且僅有一個類的實例,請使用靜態類。否則,請使用實例類。一個類是否是靜態的,對於數據如何更新或者成員是否公開是一個完全不同的問題。也許一個例子會澄清事情。 – 2011-06-14 15:51:44

+3

ArrayLists?你知道你標記了這個.net-3.0,對嗎?一些泛型如何? – Andrew 2011-06-14 15:51:54

+1

你正試圖解決什麼問題?有些上下文會使這更容易理解/解決?這些數據列表包含什麼?他們用於什麼?等等 – Becuzz 2011-06-14 15:54:01

回答

3

在黑暗中刺(因爲我不知道你想要完成什麼),我會做一個實例化的類並使用單例模式。

1

我已經得到了我自己陷入麻煩時,我用的是持有的事情「狀態」靜態列表前,我發現自己添加靜態函數以「清除」或「更新」列表等。因此,我學會了僅將靜態類或列表或變量用於靜態 - 不變的事物。

如果您在列表中保留對象可以更改,我會去實例化的路線。

更新

現在,我看到你的列表是一個員工列表,將其轉換爲靜態基本上使得它是一個全局變量。全局變量不好。我發現這個答案summarizes it pretty well.

+0

什麼,每次你想改變它時,創建一個全新的對象來表示狀態?如果您需要使用靜態對象清除或更新狀態,則您的實例化類也需要同樣的東西。真的沒有看到你(我假設)試圖創造的點。 – Blindy 2011-06-14 16:02:19

+0

@Bindind我在OP的黑暗中捅了捅什麼。他顯然需要在他的問題中增加一些背景。他的問題基本上是問,哪一個更好,但是這是假設一種方式比其他方式更好,這是不正確的。這取決於。 – LarsTech 2011-06-14 16:44:03

+0

你明白這個問題,你是否願意詳細說明你可能遇到的麻煩? – John 2011-06-15 18:11:26

1

我個人會(並且確實)使用中央靜態類。兩種選擇都打破了面向對象的原則,但至少中央靜態類方法不會將我的表格的內部運作暴露在外。

+0

出於好奇你能詳細說明一下嗎? – John 2011-06-15 18:08:28

+0

詳細說明什麼? – Blindy 2011-06-15 18:43:22

+0

關於爲什麼兩種選擇都會破壞面向對象的原則...... – John 2011-06-15 18:52:20

相關問題