如何将两个方法转换为一个方法,既能提高效率又能使代码清晰简洁?
我还有三个这样的条件要检查,但我没有提到(那太长了):
public void getmembershipstatusmembers()
{
if (cbGEStatustype.Text != "")
{
var totalmembers = from tsgentity in eclipse.members
join memtomships in eclipse.membertomships on tsgentity.member_Id equals memtomships.member_Id
join mshipoptiions in eclipse.mshipoptions on memtomships.mshipOption_Id equals mshipoptiions.mshipOption_Id
join mshiptypes in eclipse.mshiptypes on mshipoptiions.mshipType_Id equals mshiptypes.mshipType_Id
join mshipstatus in eclipse.mshipstatustypes on memtomships.mshipStatusType_Id equals mshipstatus.mshipStatusType_Id
where mshipstatus.mshipStatusType_Name.StartsWith(cbGEStatustype.Text)
select new
{
tsgentity.member_Id,
tsgentity.member_Lastname,
tsgentity.member_Firstname,
tsgentity.member_Postcode,
tsgentity.member_Reference,
tsgentity.member_CardNum,
tsgentity.member_IsBiometric,
tsgentity.member_Dob,
mshiptypes.mshipType_Name,
mshipstatus.mshipStatusType_Name,
memtomships.memberToMship_EndDate
};
dgvReportMembers.DataSource = totalmembers;
}
}
public void getcardnumbers()
{
if (txtcardnum.Text != "")
{
var totalmembers = from tsgentity in eclipse.members
join memtomships in eclipse.membertomships on tsgentity.member_Id equals memtomships.member_Id
join mshipoptiions in eclipse.mshipoptions on memtomships.mshipOption_Id equals mshipoptiions.mshipOption_Id
join mshiptypes in eclipse.mshiptypes on mshipoptiions.mshipType_Id equals mshiptypes.mshipType_Id
join mshipstatus in eclipse.mshipstatustypes on memtomships.mshipStatusType_Id equals mshipstatus.mshipStatusType_Id
where tsgentity.member_CardNum.StartsWith(txtcardnum.Text)
select new
{
tsgentity.member_Id,
tsgentity.member_Lastname,
tsgentity.member_Firstname,
tsgentity.member_Postcode,
tsgentity.member_Reference,
tsgentity.member_CardNum,
tsgentity.member_IsBiometric,
tsgentity.member_Dob,
mshiptypes.mshipType_Name,
mshipstatus.mshipStatusType_Name,
memtomships.memberToMship_EndDate
};
dgvReportMembers.DataSource = totalmembers;
}
}
我正在寻找这样的东西:
private void allmembers()
{
var members = from ......
.......
.......
if (cbGEStatustype.Text != "")
{
dgvreports.datasource = members.where(.......)
}
if (txtcardnum.Text != "")
{
dgvreports.datasource = members.where(.......)
}
}
最佳答案
你找错人了。让一种方法完成其他两种方法的工作有时是个好主意,但永远不会使您的代码显着提高(或降低)效率。
建议的更改是否会使您的代码更清晰?这是值得做的。它会减少重复吗?这也值得做。这是正确的改变吗?查看您的代码,我猜想更好的方法是将方法的公共(public)部分提取到新方法中,然后从现有方法中调用该新方法。
关于c# - 如何将两种方法转换为一种方法以提高效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7421292/