• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
只是向上走
采菊东篱下,悠然见南山。
博客园    首页    新随笔    联系   管理    订阅  订阅
泛型中的协变和逆变
泛型中的协变和逆变,使用场合

通常,协变类型参数可用作委托的返回类型,而逆变类型参数可用作参数类型。 对于接口,协变类型参数可用作接口的方法的返回类型,而逆变类型参数可用作接口的方法的参数类型。

协变和逆变统称为变体。 未标记为协变或逆变的泛型类型参数称为“固定参数”。

  • 在 .NET Framework 4中,Variant 类型参数仅限于泛型接口和泛型委托类型。
  • 泛型接口或泛型委托类型可以同时具有协变和逆变类型参数。
  • 变体仅适用于引用类型;如果为 Variant 类型参数指定值类型,则该类型参数对于生成的构造类型是不变的。
  • 变体不适用于委托组合。 也就是说,在给定类型 Action<Derived> 和 Action<Base>的两个委托的情况下,无法将第二个委托与第一个委托结合起来,尽管结果将是类型安全的。 变体允许将第二个委托分配给类型 Action<Derived> 的变量,但只能在这两个委托的类型完全匹配的情况下对它们进行组合。

参考:http://msdn.microsoft.com/zh-cn/library/vstudio/dd799517.aspx

posted on 2013-10-12 15:05  jes.shaw  阅读(192)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3