有更少的代码行,有没有更好的方法来做到这一点?有时FirstName或者SecondName或者ThirdName值可能null- 这段代码有效,但我想提高质量.
if (FirstName != null)
{
txtEngageeName.Text = FirstName.ToString() ;
}
if (FirstName != null && SecondName != null)
{
txtEngageeName.Text = FirstName.ToString() + SecondName.ToString();
}
if (FirstName != null && SecondName != null && ThirdName != null)
{
txtEngageeName.Text = FirstName.ToString() + SecondName.ToString() + ThirdName.ToString();
}
Run Code Online (Sandbox Code Playgroud)
你可以做到简单(如果你真的不想要实体之间的空格):
txtEngageeName.Text = string.Format("{0}{1}{2}", FirstName, SecondName, ThirdName);
Run Code Online (Sandbox Code Playgroud)
Null将被格式化为空字符串.
如果你需要空间.
txtEngageeName.Text = string.Join(" ", new[] { FirstName, SecondName, ThirdName}.Where(s => s != null));
Run Code Online (Sandbox Code Playgroud)
您可以使用null-coalescing运算符string在字符串为空时获取空,null并且连接空字符串不会产生任何影响.
txtEngageeName.Text = (FirstName ?? "") +
(SecondName ?? "") +
(ThirdName ?? "");
Run Code Online (Sandbox Code Playgroud)
您可以使用三元?:运算符在第一个和第二个名称后添加空格(如果它们不为空).
string txtEngageeName = (FirstName == null ? "" : FirstName + " ") +
(SecondName == null ? "" : SecondName + " ") +
(ThirdName ?? "");
Run Code Online (Sandbox Code Playgroud)