遇到这么一行代码
public static int ToInt32(this object obj, int defaultValue = 0)
{
return obj?.ToString().ToInt32() ?? defaultValue;
}
问题在于obj
后边的一个?
是干嘛的,怎么用?
obj == null ? null : obj.ToString().ToInt32() ?? defaultValue
??
expands to
(obj?.ToString().ToInt32()) != null ? (obj?.ToString().ToInt32()) : defaultValue
obj也可能为null
obj?使得obj为null的时候不报错
C#的语法糖
https://www.cnblogs.com/cyit/p/6252923.html
楼上正解,obj?可以为null 例如 int为值类型不能为null int?可以为null~