最近我花了一些时间发现一个棘手的行为,我做了这样的事情
public static string GetPrefixedNameList(string[] names, string prefix = null)
{
if (names == null || names.Length == 0)
return "";
return prefix ?? string.Empty + string.Join(", ", names);
}
很容易,我问,但我总是只得到前缀或结果为空字符串,但从来没有加入名单
让它正常工作: 当它是一个中间结果时,总是用括号括起来“??评估部分”!
return (prefix ?? string.Empty) + string.Join(", ", names);
VS2012:没有警告,没有提示,加入名称部分被忽略了!!!这似乎是一个编译器错误!!!
这不是一个真正的问题,也许其他人可以节省一些时间