我有一个混乱的方法,它生成一个三个字符串的名称.这三个字符串可以为null.我要检查每个可能的组合并根据给定的可用值创建一个字符串.结果名称中的每个变量都没有固定位置/布局,这取决于所有字符串的可用性.
我的方法现在看起来像这样:
private String GetName(string variable, string label, string dimension)
{
string result = String.Empty;
if (!String.IsNullOrEmpty(label) && !String.IsNullOrEmpty(variable) && !String.IsNullOrEmpty(dimension))
{
result = String.Format("{0} [{1}] ({2})", label, dimension, variable);
}
else if (!String.IsNullOrEmpty(label) && !String.IsNullOrEmpty(dimension))
{
result = String.Format("{0} [{1}]", label, dimension);
}
else if (!String.IsNullOrEmpty(label) && !String.IsNullOrEmpty(variable))
{
result = String.Format("{0} ({1})", label, variable);
}
else if (!String.IsNullOrEmpty(label))
{
result = String.Format("{0}", label);
}
else if (!String.IsNullOrEmpty(variable) && !String.IsNullOrEmpty(dimension))
{
result = String.Format("{0} [{1}]", variable, dimension);
}
else if (!String.IsNullOrEmpty(variable))
{
result = String.Format("{0}", variable);
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
关于如何改进这种方法的任何建议(摆脱if/else结构)?
检查顶部的空值,如果需要,更改为字符串,然后创建最终结果
var stringsToInclude = new List<string>();
if(!String.IsNullOrEmpty(label))
stringsToInclude.Add(label);
if(!String.IsNullOrEmpty(dimension))
stringsToInclude.Add(string.Format("[{0}]", dimension));
if(!String.IsNullOrEmpty(variable))
stringsToInclude.Add(string.Format("({0})", variable));
result = string.Join(" ", stringsToInclude);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |