C# Unity 补全计划 泛型

news2024/9/26 1:22:24

 本文仅作学习笔记与交流,不作任何商业用途,作者能力有限,如有不足还请斧正

1.什么是泛型

泛型(Generics)是C#中的一个强大特性,允许你编写可以适用于多种数据类型的可重用代码,而不需要重复编写类或方法,泛型提供了类型参数化的能力,使得我们可以在编写代码时延迟确定具体的数据类型

说白了,泛型就是就是偷懒用的,或者说是对数据类型不定的情况下,占位用的

2.泛型广泛用于各种地方

只需要学会两个符号即可

<T>: < > 代表泛型符号,T代表占位符

T: 占位符,表示未定数据类型

下面举例说明:

2.1泛型函数

这是一个参数为泛型的泛型函数

MyFunction<int>(114514);
//泛型函数
 static void MyFunction<T>(T t )
    { 
    Console.WriteLine( t );
}

使用时别忘了在<>中填写数据类型,这样给出的数据类型就会交给T,而函数的参数就会变为int类型,图解: 

2.2泛型类

比较常见的使用方式就是泛型类的<T>和字段变量一直,不然需要合理的强制转换

当然构造函数传入的一定是和创建类时,和<T>一样的类型

Computer<string> computer = new Computer<string>("泛型数据的任意性");
Console.WriteLine(computer.Value);

public class Computer<T> {
    private  T value;
    public T Value { get { return value; } }
    public Computer(T value)
        {
        this.value = value; 
    }
}

2.3泛型接口

我的目标是给出一个泛型接口,通过子类去实现其中的属性和方法

通过子类的方法将属性的set封装一次,并将属性get出来

泛型接口

public interface Computer<T> {
    
    protected T Value {
        get;
    }
    protected T MyFunction(T value) { 
        return value; }
}

继承泛型接口

public class NoteBook : Computer<string> {

    public string Value{get;private set; }

    public string MyFunction(string s)
        { 
        Value = s;  
         return Value;    
    }
}

实现:

NoteBook noteBook = new NoteBook();
noteBook.MyFunction("泛型接口");
Console.WriteLine(noteBook.Value);

总览:

NoteBook noteBook = new NoteBook();
noteBook.MyFunction("泛型接口");
Console.WriteLine(noteBook.Value);

public interface Computer<T> {
    
    protected T Value {
        get;
    }
    protected T MyFunction(T value) { 
        return value; }
}

public class NoteBook : Computer<string> {

    public string Value{get;private set; }

    public string MyFunction(string s)
        { 
        Value = s;  
         return Value;    
    }
}

图解:

2.4泛型委托

我就以上面的MyFunction方法举例,用Func委托(一个c#提供好的,有可以参,必须有返回值的委托函数)来订阅该方法:C# 委托-CSDN博客

 public Func<string,string> func;
  public NoteBook(string s)
      {
      func += MyFunction;
      func.Invoke(s);
  }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1971055.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第二证券:刚刚!亚太股市,跌麻了!

今天早盘&#xff0c;亚太股市全线崩跌。日经225指数在大幅低开之后快速下行&#xff0c;最大跌幅近5%&#xff1b;韩国、澳大利亚股指亦迎来逾越2%以上的暴降。那么&#xff0c;毕竟发生了什么&#xff1f; 剖析人士认为&#xff0c;或许仍是与日元套息有关。从前史来看&…

Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules。Android studio纯java代码报错

我使用java代码 构建项目&#xff0c;初始代码运行就会报错。我使用的是Android Studio Giraffe&#xff08;Adroid-studio-2022.3.1.18-windows&#xff09;。我在网上找的解决办法是删除重复的类&#xff0c;但这操作起来真的太麻烦了。 这是全部报错代码&#xff1a; Dupli…

mysql环境的部署安装及数据库的操作(twenty day)

一、centos7 中安装 mysql 8.x 1、下载安装包 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar 2、解压 tar -zxvf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar 3、卸载mariodb yum remove -y *mariadb* 4、依次安装依赖包…

SC215TA是C型/ PD和DPDM快速充电控制器,集成了内部反馈补偿PD3.0快充

SC215TA是C型/ PD和DPDM快速充电控制器&#xff0c;集成了内部反馈补偿。它符合最新的C型和PD 3.0标准&#xff0c;并支持专有的高压快速充电协议与DPDM接口。它的目标是旅行适配器的应用程序。SC215TA通过集成USB PD基带PHY、Type-C检测、DPDM PHY、VBUS放电路径、VCONN电源、…

旧衣回收小程序,旧衣回收行业新态势

进入网络时代后&#xff0c;互联网改变了大众的生活&#xff0c;传统的回收模式逐渐被淘汰&#xff0c;新兴的互联网旧衣回收受到了大众的关注&#xff01;通过技术创新为行业带来新模式&#xff0c;不断优化回收流程&#xff0c;提高回收效率&#xff0c;提升居民的回收体验&a…

Java编程达人:每日一练,提升自我

目录 题目1.以下哪个单词不是 Java 的关键字&#xff1f;2.boolean 类型的默认值为&#xff1f;3.以下代码输出正确的是&#xff1f;4.以下代码&#xff0c;输出结果为&#xff1a;5.以下代码输出结果为&#xff1a;6.以下代码输出结果为&#xff1f;7.float 变量的默认值为&am…

Three.js WebGPU 节点材质系统 控制instances的某个实例单独的透明度,颜色等属性

文章目录 1. 声明一个实例必要的属性instanceMatrix同级别的属性2. 在设置位置矩阵的时候填充这个数组3. 在shader中获取当前的索引4. 增加uniform5. 对比当前着色的实例是否是选中的实例6. 如果是选中的实例7. 影响片元着色器透明度参数 8.源码 写在前面 本文环境是 原生js 没…

EV代码签名证书申请流程

EV代码签名证书可以有效提高用户信赖。可以用于任何软件&#xff0c;支持Microsoft SmartScreen应用程序信誉功能以及对Windows 10内核驱动程序进行签名。 下面是EV代码签名证书的申请流程 代码签名证书_代码签名证书申请购买-JoySSL代码签名证书是对可执行脚本、软件代码和内容…

500+伙伴齐聚上海:纷享销客生态伙伴大会·上海站成功举办

近日&#xff0c;纷享销客生态伙伴大会上海站成功举办&#xff0c;此次会议汇聚了500余位来自各行各业的伙伴&#xff0c;齐聚一堂&#xff0c;共同探讨行业的未来发展趋势。 01、展望CRM市场 国内外双轮驱动&#xff0c;SaaS巅峰在价值创造与效率运营 纷享销客创始人兼CEO罗…

vulhub:nginx解析漏洞CVE-2013-4547

此漏洞为文件名逻辑漏洞&#xff0c;该漏洞在上传图片时&#xff0c;修改其16进制编码可使其绕过策略&#xff0c;导致解析为 php。当Nginx 得到一个用户请求时&#xff0c;首先对 url 进行解析&#xff0c;进行正则匹配&#xff0c;如果匹配到以.php后缀结尾的文件名&#xff…

零售门店客流统计系统支持回头客识别,更好维护老客户

随着市场竞争日益激烈&#xff0c;零售业面临着诸多挑战&#xff0c;尤其是如何吸引新客户的同时留住老客户。客流统计系统作为一项关键的技术手段&#xff0c;正在帮助零售门店解决这一难题。 一、零售门店客流统计痛点 1.数据准确性低&#xff1a;传统的人工统计方法往往存在…

MATLAB(10)分类算法

前言 MATLAB中实现分类算法的代码可以非常多样&#xff0c;取决于你具体想要使用的分类算法类型&#xff08;如决策树、逻辑回归、支持向量机、K近邻等&#xff09;。以下是一些常见分类算法的基本MATLAB实现示例。 一、逻辑回归 逻辑回归是分类问题中的一种基础算法&#xff0…

第十六天学习笔记2024.7.29

web yum -y install httpd systemctl start httpd.service systemctl stop firewalld systemctl disable firewalld 2、动态⻚⾯与静态⻚⾯的差别 &#xff08;1&#xff09;URL不同 静态⻚⾯链接⾥没有“&#xff1f;” 动态⻚⾯链接⾥包含“&#xff1f;” &#xff08…

第一 二章 小车硬件介绍-(全网最详细)基于STM32智能小车-蓝牙遥控、避障、循迹、跟随、PID速度控制、视觉循迹、openmv与STM32通信、openmv图像处理、smt32f103c8t6

第一篇-STM32智能小车硬件介绍 后续章节也放这里 持续更新中&#xff0c;视频发布在小B站 里面。这边也会更新。 B站视频合集: STM32智能小车V3-STM32入门教程-openmv与STM32循迹小车-stm32f103c8t6-电赛 嵌入式学习 PID控制算法 编码器电机 跟随 小B站链接:https://www.bilib…

贪心算法—股票交易时机Ⅱ

在此前我们已经介绍过贪心算法以及股票交易时机Ⅰ&#xff0c;有需要的话可以移步至贪心算法_Yuan_Source的博客-CSDN博客 题目介绍 122. 买卖股票的最佳时机 II - 力扣&#xff08;LeetCode&#xff09; 给你一个整数数组 prices &#xff0c;其中 prices[i] 表示某支股票第…

【Linux】问题解决:yum repolist出现“!”号

问题描述&#xff1a;在运行 yum repolist 时&#xff0c;出现以下状况&#xff1a; 原因&#xff1a;表示仓库里有过期的元数据&#xff0c;并不是最新版本。 解决方法&#xff1a; 清楚过期缓存 yum clean all 快速创建新yum缓存 yum makecache fast 结果&#xff1a;…

Qt——QTCreater ui界面如何统一设置字体

第一步&#xff1a;来到 ui 设计界面&#xff0c;鼠标右键点击 改变样式表 第二步&#xff1a;选择添加字体 第三步&#xff1a;选择字体样式和大小&#xff0c;点击 ok 第四步&#xff1a;点击ok或apply&#xff0c;完成设置

基于100G-PAM4技术的LinkX 线缆

LinkX线缆专注于加速数据中心和人工智能计算系统&#xff0c;这些产品不仅提供了高数据传输速率&#xff0c;还在设计上特别优化了低延迟性能&#xff0c;以满足现代计算系统对速度和效率的高要求。 一、主要特点与技术规格 1、传输距离与速率 数据中心应用&#xff1a;支持…

用 Bytebase 实现批量、多环境、多租户数据库的丝滑变更

Bytebase 提供了多种功能来简化批量变更管理&#xff0c;适用于多环境或多租户情况。本教程将指导您如何使用 部署配置 和 数据库组 在不同场景下进行数据库批量变更。 默认流水线 vs 部署配置 图片数据库 vs 数据库组 1. 准备 请确保已安装 Docker&#xff0c;如果本地没有重…

Ubuntu 24.04 LTS Noble安装OpenSSH服务器

OpenSSH 服务器在 Ubuntu Linux 上提供安全外壳 ( SSH) 协议&#xff0c;以便远程管理系统&#xff0c;同时提供高级别的加密&#xff0c;确保安全。虽然许多 Linux 系统默认配备 OpenSSH 服务器&#xff0c;但在 Ubuntu 24.04 上&#xff0c;我们必须手动安装它。因此&#x…