一个.cs文件中的两个类

时间:2013-02-22 19:01:26

标签: c# asp.net entity-framework class

我是新手,也许是我做错了什么。我有.cs文件名PayrollDetails.cs。在其中我创建了两个类(1)获得GrossPay和(2)PayrollDetails。我在GrossPay类中有一些getter和setter方法,我想使用它们。为什么我没有得到它。

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完成时,调用已设置的ALL的getter方法,然后进行计算。任何帮助将非常感激。一个更有经验的程序员可能有更好的方法来做这件事。

2 个答案:

答案 0 :(得分:1)

在1个文件中有2个类没有任何违法行为。实际上,您可以将整个程序放在一个文件中。

这完全取决于可读性。每个类有1个文件很方便,文件名通常是类名。

随着项目规模的扩大,你可以使用命名空间将所有代码拆分为模块。

答案 1 :(得分:1)

doSomethingPayrollDetails中的静态方法。 getGrossPay中的方法和成员不是静态的,它们是实例方法和成员。在调用方法之前,您必须实例化一个新的getGrossPay。

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