2013-02-22 88 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. 
} 
相关问题