我有三个类(classA、classB和classC),它们都继承自一个接口“IFoo”。如果使用以下代码:
或者
var fooItem = (request.classAitem ?? (request.classBitem as IFoo ?? request.classCitem))
或者
var fooItem = (request.classAitem ?? request.classBitem ?? request.classCitem as IFoo)
它可以正常工作,但其他组合甚至无法编译:
var fooItem = (request.classAitem as IFoo ?? request.classBitem ?? request.classCitem)
或者
var fooItem = (request.classAitem ?? request.classBitem ?? request.classCitem) as IFoo
在某些情况下,编译器似乎会将子类隐式地解压缩为它们的IFoo接口,但在其他一些情况下则不会。你们认为呢?
classAitem
、classBitem
和classCitem
有哪些类型?请展示它们的定义。另外,ContactPoint
是什么?它实现了IFoo
吗? - poke