泛型 协变与逆变

定义:协变out和逆变in是在接口和委托中用于修饰泛型的,主要用于定义泛型类型的使用区域。

语法:<outT>T的泛型类型只能用于返回值类型<inT>T的泛型类型只能用于参数列表类型

应用:Func<T>

public delegate TResult Func<in T1,in T2, out TResult> (T1 arg1,T2 arg2);

复制代码
//接口
interface I_Out<out T> {    
    T Move();//协变只能是返回值类型
    //void Run(T speed); //报错:协变的泛型类型只能当做返回值类型使用
}
interface I_In<in T> {
    //T Move(); //报错:逆变的泛型类型只能当做参数列表类型使用
    void Run(T speed); //逆变只能是参数列表类型
}
//委托
delegate R CustomDelegate<in V, in E, out R>(V v, E e);

public class Mainclass {
    //根据委托的类型定义存储函数
    public static string End(string str, char ch)
    {
        return str + ch;
    }
    public static void Main()
    {
        CustomDelegate<string, char, string> custom = End;
        Debug.Log(custom("jack", '$'));
    }
}
相关推荐
এ慕ོ冬℘゜5 分钟前
JavaScript学习心得:从只会语法,到真正会写业务逻辑
开发语言·javascript·ecmascript
钱栈up5 分钟前
VSCode 调试多模块 Maven + Spring Boot 后端:从启动失败到一次跑通
java·spring boot·maven
uoKent6 分钟前
c++中new和malloc的区别
java·jvm·c++
2601_9669496510 分钟前
五档盘口数据对量化交易有什么价值?从信号判断到策略风险的完整分析
开发语言·人工智能·python·数据分析·量化·股票数据·quantdash
十五喵源码网16 分钟前
基于springboot2+vue2的疾病防控综合系统
java·毕业设计·springboot·论文笔记
砚底藏山河23 分钟前
【量化纯GET实战 #11】移动均线 MA:5 日 20 日 60 日怎么算怎么用
java·python·金融·maven
小吴学不废Java27 分钟前
Python 基础语法
开发语言·python
一只小闪闪35 分钟前
easy-trans java数据通用翻译框架v2.3.0
java·后端·架构
2601_9620558137 分钟前
Spring全部注解
java·后端·spring
chjif1 小时前
一张照片和一段声音如何生成口播视频:MiniMax H3 音画同步实测
java·前端·javascript