首页 > 编程语言 >C#中的泛型(部分应用)

C#中的泛型(部分应用)

时间:2023-04-04 15:22:51浏览次数:26  
标签:generic C# Generic int 应用 泛型 array public

泛型(Generic) 顾名思义:就是广泛的类型。在不确定使用什么类型时先占用一个类的位置。

语法:泛型类<T>     其中T表示未知类型(可能是:string,int,bool......)作为一个占位符,代替实际的类型,一般常用泛型标识:T,K。

public class Generic<T>//泛型方法:让方法也支持多种类型

{  

  //数据类型是泛型T[]
  public T[] array//如果T=int,就是int[],如果string,就是string[]

  {

    get { return array; } 

  }

  //设置形参是泛型

  public void setItem(int index ,T item)
  {
    array[index] = item;
  }

  public static void Add<T>(T x,T y)
  {
    Console.WriteLine($"x:{x},y:{y}");
  }

  //设置返回值是泛型

  public T getItem(int index)
  {
    return array[index];
  }

}

1.实例化泛型类
  Generic<int> generic = new Generic<int>(3);
  generic.setItem(0, 10);
  generic.setItem(1, 20);
  generic.setItem(2, 20);
  foreach (var item in generic.Array)
  {
    Console.WriteLine(item);
  }

2.使用泛型方法
  Generic<int>.Add<int>(10, 20);

  //可简化为
  Generic<int>.Add(10, 20);

3.泛型接口

3.1 创建接口

  internal interface Interface1<T>
  {

    //此时<T>可以省略,因为泛型方法和泛型接口的T相同
    T GetValue<T>(T x);

  }

3.2 连接接口

  internal class Class1:Interface1<int>
  {
    public T GetValue<T>(T x)
    {
      return x;
    }
  }

3.3 使用接口

  internal class Program
  {
    static void Main(string[] args)
    {

      Class1 class1 = new Class1();
      Console.WriteLine(class1.GetValue(10));

    }

  }

 

标签:generic,C#,Generic,int,应用,泛型,array,public
From: https://www.cnblogs.com/nsy101010/p/17285676.html

相关文章

  • 逍遥自在学C语言 | 算数运算符
    前言一、人物简介第一位闪亮登场,有请今后会一直教我们C语言的老师——自在。第二位上场的是和我们一起学习的小白程序猿——逍遥。二、算数运算符简介C语言的算数运算符,是用来完成基本的算术运算的符号。按操作数个数可分为一元运算符(含一个操作数)和二元运算符......
  • 在IDEA创建SpringBoot项目没有src等文件夹
    问题在IDEA创建SpringBoot项目的时候,有时候创建完成了,但是没有src等文件夹,可能前几分钟还行,突然就不行了。原因可能是网络等问题,我也还没弄懂,或者哪位大神知道的,可以留言告知一下。解决办法办法一:自己手动创建办法二:通过网页创建,下载压缩包,再通过IDEA打开即可阿里云:https:/......
  • 第三届人工智能,大数据与算法国际学术会议 (CAIBDA 2023)
    第三届人工智能,大数据与算法国际学术会议(CAIBDA2023)​大会官网:http://www.caibda.org/大会时间:2023年6月16-18日大会地点:中国郑州截稿日期:2023年6月10日接受/拒稿通知:投稿后1周内提交检索:EICompendex,Scopus往届检索记录:CAIBDA2021| IEEEXplore | EICompende......
  • npm报错 npm ERR! Unexpected token '.'
    报错如下图:  报错原因:node版本太高解决办法:卸载node重新安装,或者使用nvm切换版本 mvm安装使用教程:https://www.cnblogs.com/tianxinya/p/17286467.html......
  • css3 箭头上下跳动
    .container.stepsItem.permit.permitStepItem.table.showTable{width:.37rem;margin:.20remauto;position:absolute;bottom:0;left:50%;margin-left:-.18rem;-webkit-animation:opener.5sease-in-outalternateinfinite;......
  • CF 1807
    https://codeforces.com/contest/1807/problem/G1 easy-version 同《货币系统》背包f[j]每个数字合成的次数#include<iostream>#include<cstring>usingnamespacestd;constintM=5006,N=5006;intn,a[N],cnt[M],f[M];boolsolve(){ inti,j; me......
  • ContentProvider的启动
    ContentProvider的工作离不开AMS(ActivityManagerService),事实上,四大组件的工作流程都离不开AMS。我们在创建一个ContentProvider的时候,除了新建一个类继承并重写方法,还需要在AndroidManifest中进行注册,而AndroidManifest就是AMS进行处理的。AndroidManifest会在当前应用被创建时进......
  • HCIP-路由策略实验
      实验要求:利用重发布技术与路由策略满足路由无环且避免选路不佳 实验思路:一、配置IP地址[r1]intg0/0/0[r1-GigabitEthernet0/0/0]ipa192.168.12.124[r1]intg0/0/1[r1-GigabitEthernet0/0/1]ipa192.168.13.124[r1-GigabitEthernet0/0/1]intl0[r1-Loop......
  • cs 保研经验贴 | 数学试题 · 自动化所特供版
    据(2022年我所看的)往年经验,自动化所比较重视数学。感觉,按照自动化所的数学题库复习,就足以应付大多数夏令营的笔试面试了。目录高等数学线性代数概率论机器学习复变函数其他高等数学初等函数的定义:幂函数、指数函数、对数函数、三角函数、反三角函数,与常数经过有限次的有......
  • React父组件调用子组件属性和方法
    子组件暴露自身的属性和方法父组件使用ref绑定对应的子组件。调用即可类组件绑定ref示例importReactfrom'react'importChildfrom'./Child'exportdefaultclassParentextendsReact.Component{//...render(){return(<div><Childre......