Bir “if” sınamasına farklı bakış

29 Oca

Kodalama yaparken karşılaştığım uzunca bir “if” sınaması için farklı bir yaklaşımı sunmak istedim.


public class OperationManager
{
     public IOperation GetOperation(string arg)
     {
        if (arg == "+" ||
            arg == "-" ||
            arg == "*" ||
            arg == "/")
        {
            return new MathOperation();
        }

        return new UnknownOperation();
    }
}

Yukarıdaki ifadenin alternatifi olarak aşağıdaki gibi bir çözüm üretebiliriz. Okunabilirliği arttıran bir yöntem gibi görünüyor. Kod satırları azaldığından göze daha hoş gelen bir yazım biçimi oldu.

public class OperationManager
{
     private readonly string[] operations = { "+", "-", "*", "/" };

     public IOperation GetOperation(string arg)
     {
         if (operations.Contains(arg))
         {
             return new MathOperation();
         }
         return new UnknownOperation();
     }
}