小编Zal*_*mon的帖子

null-coalsescing运算符如何工作

我有三个继承自'IFoo'接口的类(classA,classB和classC); 如果使用这个

var fooItem = (request.classAitem ?? (request.classBitem  as IFoo ?? request.classCitem)) 
Run Code Online (Sandbox Code Playgroud)

要么

var fooItem = (request.classAitem ?? request.classBitem ?? request.classCitem as IFoo)
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但其他组合甚至不会编译:

var fooItem = (request.classAitem as IFoo ?? request.classBitem ?? request.classCitem)
Run Code Online (Sandbox Code Playgroud)

要么

var fooItem = (request.classAitem ?? request.classBitem ?? request.classCitem) as IFoo
Run Code Online (Sandbox Code Playgroud)

在我看来,在某些情况下,编译器隐式地将子类解包到它们的IFoo接口,但在其他一些情况下却没有.你们有什么感想?

.net c# null-coalescing-operator

6
推荐指数
1
解决办法
100
查看次数

标签 统计

.net ×1

c# ×1

null-coalescing-operator ×1