2015-12-03 41 views
6
var result = myObject?.GetType(); 

在这种情况下,如果myObject为空,那么结果的值是多少?C#6空传播当对象为空时设置了什么值

+3

试试看看。 – MickyD

+1

看看我的关于[C#6中的新功能]的文章(https://www.simple-talk.com/dotnet/.net-framework/whats-new-in-c-6/)。在那里我展示了幕布背后发生的事情。 –

回答

9

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

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

6

结果应该是null,因为?运营商短路操作。

相关问题