C# 6 空传播 当对象为空时设置什么值

本文关键字:设置 什么 对象 传播 | 更新日期: 2023-09-27 18:25:22

var result = myObject?.GetType();

在这种情况下,如果 myObject 为 null,结果的值是多少?

C# 6 空传播 当对象为空时设置什么值

假设你的对象不隐藏默认object.GetType定义:GetType返回Type,这是一个引用类型,所以null将被返回,result将被推断为类型Type

如果你的对象有一个隐藏object.GetType的方法,它也将返回null,但推断result的类型可能会改变:如果该方法返回引用类型TResult,它将TResult,或者如果它返回类型为TResult的值类型,则Nullable<TResult>

结果应该null,因为?操作员会使操作短路。