在下面两个中做的更好的方法是什么?如果可能的话,请建议任何其他更好的。
第一种方式:
if (!string.IsNullOrEmpty(firstName) && !string.IsNullOrEmpty(lastName))
{
sUri = sUri + "&fn=" + firstName + "&ln=" + lastName;
}
else if (!string.IsNullOrEmpty(firstName) && string.IsNullOrEmpty(lastName))
{
sUri = sUri + "&fn=" + firstName + "&ln= ";
}
if (string.IsNullOrEmpty(firstName) && !string.IsNullOrEmpty(lastName))
{
sUri = sUri + "&fn= &ln=" + lastName;
}
if (string.IsNullOrEmpty(firstName) && string.IsNullOrEmpty(lastName))
{
sUri = sUri + "&fn= &ln= ";
}
第二种方式:
sUri = sUri + String.Format("&fn={0}&ln={1}",
(!string.IsNullOrEmpty(firstName) ? firstName : " "),
(!string.IsNullOrEmpty(lastName) ? lastName : " "));
答案 0 :(得分:10)
如果您要附加查询字符串参数,无论它们是否已填写,您只需执行此操作
sUri = string.format("{0}&fn={1}&ln={2}", sUri, firstName, lastName);
(请注意,这不会附加空格,因为在URI的情况下你不需要这样做)
答案 1 :(得分:6)
我会选择明确的变量:
var sanitizedFirstName = string.IsNullOrEmpty(firstName) ? " " : firstName;
var sanitizedLastName = string.IsNullOrEmpty(lastName) ? " " : lastName;
sUri = string.Format("{0}&fn={1}&ln={2}", sUri, sanitizedFirstName, sanitizedLastName);
清洁阅读(imho)
答案 2 :(得分:1)
我相信这会给你相同的结果:
sUri = sUri + String.Format("&fn={0}&ln={1}", firstName ?? " ", lastName ?? " ");
答案 3 :(得分:1)
如果你真的需要这个空间,为什么不使用null-coalescing运算符?
sUri = String.Format("{0}&fn={1}&ln={2}", sUri, firstName ?? " ", lastName ?? " ");