patterncsharpMinor
Is there better way of writing these IF checks?
Viewed 0 times
thesecheckswritingwaybetterthere
Problem
This is what I have, But I think I can write it in a sohrter and more efficient way too, what do you suggest?
EDIT: Ok I changed it a little bit, better now?
string actionString= string.Empty;
if (auditAction == DSRHelper.SaveStatusEnum.Save)
{
actionString = Properties.Resources.SAVE_ACTION_MESSAGE;
}
if (auditAction == DSRHelper.SaveStatusEnum.Complete && model.Dirty)
{
actionString = "Save'NComplete";
}
else if(auditAction == DSRHelper.SaveStatusEnum.Complete)
{
actionString = "OnlyComplete.";
}EDIT: Ok I changed it a little bit, better now?
string actionString= string.Empty;
if (auditAction == DSRHelper.SaveStatusEnum.Save)
{
actionString = Properties.Resources.SAVE_ACTION_MESSAGE;
}
else if (auditAction == DSRHelper.SaveStatusEnum.Complete )
{
if (model.Dirty)
{
actionString = "Save'NComplete";
}
else
{
actionString = "OnlyComplete";
}
}Solution
Maybe a switch? Although whether it's shorter or more efficient or even easier to read up for debate.
string actionString = GetStatusMessage(auditAction);
// ...
function GetStatusMessage(DSRHelper.SaveStatusEnum status)
{
switch(status)
{
case DSRHelper.SaveStatusEnum.Save:
return Properties.Resources.SAVE_ACTION_MESSAGE;
case DSRHelper.SaveStatusEnum.Complete:
return model.Dirty ? "Save'NComplete" : "OnlyComplete.";
default:
return string.Empty;
}
}Code Snippets
string actionString = GetStatusMessage(auditAction);
// ...
function GetStatusMessage(DSRHelper.SaveStatusEnum status)
{
switch(status)
{
case DSRHelper.SaveStatusEnum.Save:
return Properties.Resources.SAVE_ACTION_MESSAGE;
case DSRHelper.SaveStatusEnum.Complete:
return model.Dirty ? "Save'NComplete" : "OnlyComplete.";
default:
return string.Empty;
}
}Context
StackExchange Code Review Q#18369, answer score: 7
Revisions (0)
No revisions yet.