看asp.net mvc 源代码的时候发现有多处??,例如:
[ControlBuilder(typeof(ViewTypeControlBuilder))] [NonVisualControl] public class ViewType : Control { private string _typeName; [DefaultValue("")] public string TypeName { get { return _typeName ?? String.Empty; } set { _typeName = value; } } }
单问号我知道是三元运算符中的一个元素。??到底是干什么的列?
像,真像.
javascript 当中也有类似的功能。例:
var userName = tempName || "";
是不是很像 。
功能应该也是一样的。
回到主题??
return 的结果是如果_typeName为null的话,返回String.Empty.
相当于
if(_typeName == null) { return String.Empty; } else { return _typeName; }
这样的代码是不是很不干净呢。