2013-02-22 90 views
0

即時通訊新的這個,也許我做錯了什麼。我有.cs文件名稱PayrollDetails.cs。其中我創建了兩個類(1)獲得GrossPay和(2)PayrollDetails。我在GrossPay類中有一些getter和setter方法,我想使用它們。爲什麼我沒有得到它。兩個類在一個.cs文件

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Diagnostics; 

namespace SSPModel 
{ 
public class getGrossPay { 
     public List<BasicPay> BPList; 
     private List<Allowance> AlGradeList; 
     private List<Allowance> AlPostList; 
     private List<AdditionalEarnings> AdEarnList; 
     private List<Benefits> BenList; 

     public void setBPList(List<BasicPay> a) 
     { 
      BPList = a; 

     } 
     public List<BasicPay> GetBPList() { 

      return BPList; 
     } 

     public List<Allowance> GetAlGradeList() 
     { 
      return AlGradeList; 
     } 

     public void setAlGradeList(List<Allowance> a) 
     { 
      AlGradeList = a; 
     } 

     public List<Allowance> GetAlPostList() 
     { 
      return AlPostList; 
     } 

     public void setAlPostList(List<Allowance> a) 
     { 
      AlPostList = a; 
     } 
     public List<AdditionalEarnings> GetAdEarnList() 
     { 
      return AdEarnList; 
     } 

     public void setAdEarnList(List<AdditionalEarnings> a) 
     { 
      AdEarnList = a; 
     } 


     public List<Benefits> GetBenList() 
     { 
      return BenList; 
     } 

     public void setBenList(List<Benefits> a) 
     { 
      BenList = a; 
     } 
     public void ssss(getGrossPay inst) 
     { 
     List<BasicPay> a = inst.GetBPList(); 
     for (int i = 0; i < a.Count(); i++) 
     { 
      Debug.WriteLine(a.ElementAtOrDefault(i)); 

     } 

     } 
     } 
     } 

    public class PayrollDetails 
    { 

     public static void doSomething() 
     { 
      // i am not getting to call any method from the class getGrossPay. 
    } 
} 

此外,在某種程度上無關的問題上,我需要一些最佳實踐建議。我有其他的.cs文件(例如BasicPay.cs,Allowance.cs),我計算值。然後我會調用GrossPay類中的setter方法(這個工作非常好),但我想在另一個位置(或.cs文件)中使用get方法。我基本上想把它設置在一個地方,然後在不同的位置使用吸氣劑。如果我創建了一個新的實例來在另一個.cs或位置使用getter方法,它將導致null。任何想法如何去做這件事?我基本上有一個很長的函數列表,當我完成一個函數時,我使用setter等等,當ALL完成時,調用所有已設置的getter方法,然後執行我的計算。任何幫助將非常感激。更多的經驗程序員可能有更好的方式去做這件事。

+0

幾件事情:'getGrossPay'是_action_,不是_thing_,所以打電話給你的類別的東西(也許只是'GrossPay'?)。此外,C#功能[屬性](http://www.dotnetperls.com/property)。它們非常有用 - 基本上是對你定義的getter/setter方法的抽象。 – voithos 2013-02-22 19:05:02

回答

1

在1個文件中有2個類是沒有違法的。事實上,你可以在1個文件中創建整個程序。

這都是關於可讀性。每個類有一個文件是很方便的,文件名通常是類名。

而且隨着項目變大,你有命名空間將所有代碼拆分成模塊。

1

doSomething是在PayrollDetails中的靜態方法。 getGrossPay中的方法和成員不是靜態的,它們是實例方法和成員。你必須實例化一個新的getGrossPay,然後才能調用它們的方法。

public static void doSomething() 
{ 
    var grossPay = new getGrossPay(); 
    var earnList = grossPay.GetAdEarnList(); 
    //etc. 
} 
相關問題