gpt4 book ai didi

If语句的C#重构

转载 作者:行者123 更新时间:2023-11-30 13:07:15 25 4
gpt4 key购买 nike

我正在试验 C# 的不同领域并重构最佳实践/模式。

可以看出,下面的 Validate 方法有 3 个子验证方法。

有没有办法重新设计/重构此方法,以便删除 if 语句? (可能使用委托(delegate)?)。

您还建议对通用代码标准进行哪些改进?

public bool Validate()
{
bool validDump;

validDump = ValidateRecordIdentifiers();
if (!validDump)
{
LogLogic.AddEntry(LogLogic.GetEnumDescription(
LogMessages.StatusMessages.JobValidationFailed));
return false;
}

validDump = ValidateTotals();
if (!validDump)
{
LogLogic.AddEntry(LogLogic.GetEnumDescription(
LogMessages.StatusMessages.JobValidationFailed));
return false;
}

validDump = ValidateRecordCount();
if (!validDump)
{
LogLogic.AddEntry(LogLogic.GetEnumDescription(
LogMessages.StatusMessages.JobValidationFailed));
return false;
}

LogLogic.AddEntry(LogLogic.GetEnumDescription(
LogMessages.StatusMessages.JobValidationPassed));
return true;
}

最佳答案

    bool valid = false; 
if(ValidateRecordIdentifiers() && ValidateTotals() && ValidateRecordCount())
{
valid = true;
}


/******AN Alternate Suggestion for the above code********/
bool valid = ValidateRecordIdentifiers() &&
ValidateTotals() &&
ValidateRecordCount();
/*******End Alternate Suggestion*************/


var statusMessage = (valid) ?
LogMessages.StatusMessages.JobValidationPassed :
LogMessages.StatusMessages.JobValidationFailed

LogLogic.AddEntry(LogLogic.GetEnumDescription(statusMessage));

return valid;

见短路: http://msdn.microsoft.com/en-us/library/2a723cdk%28VS.71%29.aspx

关于If语句的C#重构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1985524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com