HiveBrain v1.2.0
Get Started
← Back to all entries
patterncsharpMinor

Is there better way of writing these IF checks?

Submitted by: @import:stackexchange-codereview··
0
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?

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.