我是新手,也许是我做错了什么。我有.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方法,然后进行计算。任何帮助将非常感激。一个更有经验的程序员可能有更好的方法来做这件事。
答案 0 :(得分:1)
在1个文件中有2个类没有任何违法行为。实际上,您可以将整个程序放在一个文件中。
这完全取决于可读性。每个类有1个文件很方便,文件名通常是类名。
随着项目规模的扩大,你可以使用命名空间将所有代码拆分为模块。
答案 1 :(得分:1)
doSomething
是PayrollDetails
中的静态方法。 getGrossPay
中的方法和成员不是静态的,它们是实例方法和成员。在调用方法之前,您必须实例化一个新的getGrossPay。
public static void doSomething()
{
var grossPay = new getGrossPay();
var earnList = grossPay.GetAdEarnList();
//etc.
}