Theo someone who may be in the know ...
Các biện minh được rằng lợi thế của hiệp phương sai là nặng hơn bởi những bất lợi của sự lộn xộn (tức là tất cả mọi người sẽ phải đưa ra quyết định về việc liệu sử dụng Task hoặc ITask trong mỗi đơn nơi trong mã của họ).
Nghe có vẻ như tôi không có động lực hấp dẫn nào cả. ITask<out T>
sẽ đòi hỏi rất nhiều tình trạng quá tải mới, có thể hơi dưới mui xe (tôi không thể chứng thực lớp cơ sở thực tế được thực hiện như thế nào hoặc nó đặc biệt như thế nào so với thực hiện ngây thơ) nhưng cách khác ở dạng linq
giống như này phương pháp mở rộng.
Một người nào đó đã tạo ra một điểm tốt - thời gian sẽ tốt hơn là dành class
es covariant và contravariant. Tôi không biết nó sẽ khó như thế nào, nhưng điều đó nghe có vẻ như là thời gian tốt hơn với tôi.
Mặt khác, ai đó đã đề cập rằng sẽ rất tuyệt khi có một tính năng như yield return
thực có sẵn trong phương thức async
. Ý tôi là, không có bàn tay.
Nguồn
2015-06-23 07:58:06
Infterfaces chỉ có thể là covariant hoặc contravariant. Lớp luôn luôn là bất biến. Đọc thêm về: http://stackoverflow.com/questions/13107071/why-classes-that-implement-variant-interfaces-remain-invariant –
Các lớp là bất biến trong C#. – Lee
Từ [câu trả lời này] (http://stackoverflow.com/questions/12204755/can-should-tasktresult-be-wrapped-in-ac-sharp-5-0-awaitable-which-is-covarian) dường như ai đó đã viết [một itask wrapper] (https://github.com/jam40jeff/ITask) cho nó. Ngoài ra người ta có thể bỏ phiếu cho [một đề nghị để thực hiện nó ở đây] (https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/5754247-make-task-t-implement-covariant-interface-itask- o). –