gpt4 book ai didi

generics - MonoTouch 和支持变体通用接口(interface)

转载 作者:行者123 更新时间:2023-12-02 19:30:20 25 4
gpt4 key购买 nike

下面的示例在常规 Mono 2.10.9 中可以正常编译:

namespace covarianttest
{
public interface ITest<out T> : IEnumerable<T>
{
}
}

但是,当我尝试针对 MonoTouch 6.0.8 编译它时,我收到此错误:

错误 CS1961:协变类型参数“T”必须在“covarianttest.ITest”上始终有效

那么我是否可以假设 MonoTouch 还不支持扩展协变/逆变通用接口(interface)?如果是这样,在 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 的 future 版本(可能在今年 Spring ,2013 年初推出 alpha/beta)将提供 4.0/4.5 运行时和编译器。

关于generics - MonoTouch 和支持变体通用接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14093332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com