过滤掉或重载方法

时间:2013-08-29 16:06:54

标签: c# logic

我有一个需要帮助的困境。方法TAXCheckControlNumberForAccuracy进入数据库并使用传入的变量执行Select *语句。

但是,每次程序运行时,这些变量中的任何一个都可以为null。一切都可以为空。没有可以为空。 (我正在使用OCR来获取变量。所以它并不总是准确的)

有人可以给我一些解决这个问题的最佳方法。

if ((City != null) && (Zip != null) && (State != null) && (Owner != null))
            {
                if (City.Length > 4)
                {
                    ControlNumberMatch = TAXCheckControlNumberForAccuracy(Owner, Zip, State, City);
                }
            }

2 个答案:

答案 0 :(得分:2)

您可以使用optional parameters的方法。像

public void TAXCheckControlNumberForAccuracy(string Owner = "default", 
       string Zip = "default",string  State = "default",string City = "default");

答案 1 :(得分:1)

无论您做什么,您仍需要单独检查每个参数。创建一个这样做的方法。

void string CorrectParam(string param)
{
    if (param == null)
        return "default";
    return param;
}

void TAXCheckControlNumberForAccuracy(string City, string Zip, string State, string Owner)
{
}

//call using this
TAXCheckControlNumberForAccuracy(CorrectParam(City), CorrectParam(Zip), CorrectParam(State), CorrectParam(Owner));