首页 > 其他分享 >1.泛型

1.泛型

时间:2023-07-25 20:25:09浏览次数:17  
标签:value 泛型 new where Ifunc out

基本知识

  1. 泛型需要编译器支持+JIT支持,不是语法糖

泛型约束

//约束不能是密封类 
 public static void show<T>(T value)
            where T :People
            where T:class
            where T:struct
            where T:new() //无参数构造函数约束
        {
            Console.WriteLine("This is {0},name = {1},age={2}", typeof(CwbGeneric), value.name, value.age);
            value = default(T); //根据运行时类型自动初始化
        }

协变in 逆变 out

    /*out  限制  泛型 接口 委托  被out修饰的值 只能作为返回值
     Func<鸟> s = new Func<麻雀>;    
     */
     /*in 修饰的泛型T 只能作为参数
     如 Ifunc<in t> 为自己定义的接口
     而  funcClass:Ifunc
     Ifunc<麻雀> s = new FuncClass<鸟>(); //因为in确定 传入值一定是
     Ifunc<麻雀> s = new FuncClass<麻雀>();
     */

标签:value,泛型,new,where,Ifunc,out
From: https://www.cnblogs.com/cwb8023/p/17580905.html

相关文章

  • Java 基础 - 泛型机制详解
    著作权归@pdai所有原文链接:https://pdai.tech/md/java/basic/java-basic-x-generic.html Java泛型这个特性是从JDK1.5才开始加入的,因此为了兼容之前的版本,Java泛型的实现采取了“伪泛型”的策略,即Java在语法上支持泛型,但是在编译阶段会进行所谓的“类型擦除”(TypeErasure),将......
  • 使用Autofac进行服务注册,适用版本.Net6(程序集、泛型)
    具体的也可以去参考官网:https://autofac.readthedocs.io/en/latest/integration/aspnetcore.html首先在Program.cs所属的层中引用nuget包:Autofac.Extensions.DependencyInjectionnuget网址:https://www.nuget.org/packages 可以使用NuGet包管理器进行搜索安装在Program.cs中......
  • 想在golang里用好泛型还挺难的
    golang的泛型已经出来了一年多了,从提案被接受开始我就在关注泛型了,如今不管是在生产环境还是开源项目里我都写了不少泛型代码,是时候全面得回顾下golang泛型的使用体验了。先说说结论,好用是好用,但问题也很多,有些问题比较影响使用体验,到了不吐不快的地步了。这篇文章不会教你泛型......
  • 泛型和Object的区别
    什么时候使用泛型:只要确定了用哪类对象,并且用到这个对象里的方法。选择泛型,泛型更加精确,只要用到Object的地方基本都能用泛型代替。Object类:Object是所有类的父类,更加笼统,且只能使用固定的属性。例:将List<Object>aa转化List<QueryBO>bb。@DatapublicclassQueryBO{......
  • java 判断泛型T的类型
    Java判断泛型T的类型1.概述在Java中,泛型是一种强大的类型安全机制,它可以使我们写出更加灵活和可重用的代码。然而,在某些情况下,我们可能需要判断一个泛型T的具体类型。本文将向你介绍一种方法来判断泛型T的类型。2.实现流程下面是实现判断泛型T的类型的流程:步......
  • RedisTemplate 泛型不同 指向的是同一个实例吗
    RedisTemplate泛型不同指向的是同一个实例吗在使用RedisTemplate时,我们经常会遇到需要指定不同数据类型的情况。比如,我们可能需要将某个对象存储到Redis中,并且需要使用不同的数据类型进行序列化和反序列化。那么,RedisTemplate在这种情况下会创建多个实例吗?本文将解答这个问......
  • mq json转换器 JSON泛型反序列化, 多层嵌套,使用 TypeReference
     需求解析JSON,并将其转换为对应的数据结构。例如:转换为Map<String,Object>  ......
  • java list获取泛型
    如何在Java中获取泛型类型引言在Java中,泛型是一种用于创建可重用的代码的强大工具。它允许我们在编译时指定要操作的数据类型,从而提高代码的安全性和可读性。然而,有时我们需要在运行时获取泛型的类型信息。本文将介绍如何通过Java反射机制来获取泛型类型。步骤概述下面是我们获......
  • 泛型
    定义一个函数或类时,有些情况下无法确定其中要使用的具体类型(返回值、参数、属性的类型不能确定);此时泛型便能够发挥作用;举个例子:functiontest(arg:any):any{returnarg;}上例中,test函数有一个参数类型不确定,但是能确定的时其返回值的类型和参数的类型是相同的;由于......
  • Java5泛型的用法,T.class的获取和为擦拭法站台
    Java5的泛型语法已经有太多书讲了,这里不再打字贴书。GP一定有用,不然Java和C#不会约好了似的同时开始支持GP。但大家也清楚,GP和Ruby式的动态OO语言属于不同的意识形态,如果是一人一票,我想大部分的平民程序员更热衷动态OO语言的平白自然。但如果不准备跳槽到支......