Tôi có ba lớp (classA, classB và classC) kế thừa từ một giao diện 'IFoo'; nếu sử dụng nàyToán tử null-coalsescing hoạt động như thế nào
var fooItem = (request.classAitem ?? (request.classBitem as IFoo ?? request.classCitem))
hoặc
var fooItem = (request.classAitem ?? request.classBitem ?? request.classCitem as IFoo)
nó hoạt động tốt nhưng kết hợp khác thậm chí sẽ không biên dịch:
var fooItem = (request.classAitem as IFoo ?? request.classBitem ?? request.classCitem)
hoặc
var fooItem = (request.classAitem ?? request.classBitem ?? request.classCitem) as IFoo
Dường như với tôi trong một số trường hợp, trình biên dịch ngầm y unboxes các lớp con vào giao diện IFoo của chúng nhưng trong một số trường hợp khác thì không. các bạn nghĩ sao?
Các loại 'classAitem',' classBitem' và 'classCitem' là gì? Vui lòng hiển thị định nghĩa của những người đó. Ngoài ra, 'ContactPoint' là gì? Điều đó có thực hiện 'IFoo' không? – poke
không thể biên dịch nhưng có lỗi gì? – Doruk
Vui lòng đăng [mcve]. –