C# 6 空传播当对象为空时设置什么值
C# 6 null propagation what value is set when object is null
var result = myObject?.GetType();
在这种情况下,如果 myObject
为空,Result 的值是多少?
假设你的对象没有隐藏默认的object.GetType
定义:GetType
returnsType
,这是一个引用类型,所以null
将是returned,并且 result
将被推断为 Type
.
类型
如果你的对象有一个隐藏 object.GetType
的方法,它也会 return null
,但是为 result
推断的类型可能会改变:它要么是TResult
如果该方法 return 是引用类型 TResult
,或者 Nullable<TResult>
如果它 return 是类型 TResult
的值类型。
结果应该是 null
因为 ?
运算符短路了操作。
var result = myObject?.GetType();
在这种情况下,如果 myObject
为空,Result 的值是多少?
假设你的对象没有隐藏默认的object.GetType
定义:GetType
returnsType
,这是一个引用类型,所以null
将是returned,并且 result
将被推断为 Type
.
如果你的对象有一个隐藏 object.GetType
的方法,它也会 return null
,但是为 result
推断的类型可能会改变:它要么是TResult
如果该方法 return 是引用类型 TResult
,或者 Nullable<TResult>
如果它 return 是类型 TResult
的值类型。
结果应该是 null
因为 ?
运算符短路了操作。