以下示例在常規Mono 2.10.9中編譯正常:
namespace covarianttest{ public interface ITest<out T> : IEnumerable<T> { }}
但是,當我嘗試針對MonoTouch 6.0.8進行編譯時,我收到此錯誤:
錯誤CS1961:協變類型參數’T’必須在’covarianttest.ITest’上不變地有效
那么我是否認為MonoTouch不支持擴展協變/逆變通用接口呢?如果是這樣,MonoTouch中針對這種情況得推薦
解決方法
是什么?解決方法
這實際上取決于編譯器(和配置文件/運行時)而不是Mono版本. IOW有些東西可能適用于Mono 2.10而不適用于MonoTouch 6.x.
當前版本得MonoTouch附帶了smcs編譯器和基于2.1得配置文件(主要是Silverlight和一些.NET 4.0新增功能).
較新得功能,如協方差,需要一個完整得4.0編譯器(例如Mono 2.10中得dmcs或Mono 3.0中得mcs)和運行時.
未來版本得MonoTouch(可能在今年春季推出alpha / beta于2013年初)將提供4.0 / 4.5運行時和編譯器.
以上是來客網為你收集整理得泛型 – MonoTouch和支持變體通用接口全部內容,希望內容能夠幫你解決泛型 – MonoTouch和支持變體通用接口所遇到得程序開發問題。
如果覺得來客網網站內容還不錯,歡迎將來客網網站推薦給程序員好友。
聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。