我的函数从某个Web页面获取QueryString作为string.我需要把它包起来,检查一下,我必须使用什么策略.
现在我的代码看起来很难看(我想是这样):
public QueryStringParser(string QueryString)
{
if (string.IsNullOrEmpty(QueryString))
{
this._mode = Mode.First;
}
else if (QueryString.Contains(_FristFieldName) && !QueryString.Contains(_SecondFieldName))
{
this._mode = Mode.Second;
}
else if (!QueryString.Contains(_FristFieldName) && QueryString.Contains(_SecondFieldName))
{
this._mode = Mode.Third;
}
else
{
throw new ArgumentException("QueryString has wrong format");
}
}
Run Code Online (Sandbox Code Playgroud)
一个QueryString中不能同时存在两个FieldNames.
如何将此代码更改为可读.
我至少会在检查现有字段时删除一些重复:
public QueryStringParser(string QueryString) {
if (string.IsNullOrEmpty(QueryString))
this._mode = Mode.First;
else {
bool has_1st = QueryString.Contains(_FristFieldName);
bool has_2nd = QueryString.Contains(_SecondFieldName);
if ( has_1st && !has_2nd) this._mode = Mode.Second;
else if (!has_1st && has_2nd) this._mode = Mode.Third;
else
throw new ArgumentException("QueryString has wrong format");
}
}
Run Code Online (Sandbox Code Playgroud)