C#学习笔记 --- 基础补充

1.operator   运算符重载:使自定义类可以当做操作数一样进行使用。规则自己定。

        

2.partial 分部类:   同名方法写在不同位置,可以当成一个类使用。

        

3.索引器:使自定义类可以像数组一样通过索引值 访问到对应的数据。

        

4.params  数组参数 (变长参数) 修饰。对应参数放在最后一位。 传参的数组可以是0个或者多个。

        

5.重写

        

1.折叠代码:可以编写注解内容,折叠之后可以看注解内容。

    #region 折叠后可以看到注释
    #endregion

2.二进制十进制转化

        

3.十进制转二进制(10除以2 取余数 在除以2 直到1 再将结果从下到上链接)

        

4.C#命名变量的规范

          不能重名,不能使用关键字,不能使用数字作为开头,不能使用特殊符号下划线除外。

5. 字符串的拼接。通过 +  。 

        通过 stirng.Format("测试{0},{1}",第一个占位符 0 ,第二个占位符 1 ) 
        后续填充的数据数量一定要比字符串里面的占位符多,不然会报错。

6.operator  运算符重载   (有点类似于 lua 元表知识的 表的相加等操作。__Add......)

        一般来说类和结构体不能做操作数去使用。但是通过operator 可以实现需求。

        

        类的静态方法:operator  重载 XX  符号(参数最少有一个类类型)。

        

        允许重载:传的参数的种类,顺序不同。

        

        

        适用于 operator  的运算符:注意实际所需要的参数个数

        算术运算符  +   -  *  /   %     ++   --     

        逻辑运算符  ! 

        位移运算符  &  |   ^    ~   <<   >>     

        条件运算符  >  <    >=   <=   ==    !=     需要成对出现。例如:有 > 就要有 <。

        

  7.operator  运算符重载  小例子。

        

        

8.里氏替换原则

        

        object 万物之基类    引用类型 都用 as 获取数据。值类型都使用括号强转就行。

        

        装箱,拆箱  发生在  object 类型和值类型之间。因为数据在栈.堆中进行了类型的转化。

10.继承里面的构造函数。

        

        

11.sealed 密封类的修饰。不允许再被继承。加强面向对象设计的规范性,结构性,安全性。

        

12.接口。interface

        

        如果接口是 protected  。需要显示实现成员。使用权限命名。

       ​​​​​  ​

        《1》接口小案例:硬盘,u盘 存储设备 读取设备    mp3 读取设备。

        

        

        

13. string  字符串的用法

        

14.stirngbuilder

        

15.结构体 和 类 的区别

        

        

16. 接口 和抽象类

        

        

        

        

17.事件  与 委托

                             

18. 匿名函数  与  lambad  表达式。

        

        

19. 闭包。外层函数有临时变量,内存函数用到了外层函数的变量。会导致 变量的生命周期发生变化。这种行为称为闭包。

        闭包中,内层函数用到的  变量的值取决于调用的时候 。其静止状态是什么数值。

        《1》实例1:当调用委托的时候。int i 早就完成循环了。i 的固定值就是5。所以会打印5。

        

        《2》实例2:使用临时变量存储当前循环的 i 一轮循环结束之后。因为下一轮 的index 和这一轮 的index 是两个不一样的变量。所以 index 就是最终值了。所以存的才是 0 ,1, 2, 3, 4 

        

20. list 的排序。自定义 sort 排序。

        《1》默认对数值类型是可以排序的。默认是升序。

        

        《2》自定义排序。通过实现接口

        

        

        《3》通过委托方法的形式。写法其实和 lua 中的 table.sort(list,fucntion(a,b) { 判断逻辑 }类似。

        <1>第一种方式,全写。

        

        

       <2>使用匿名函数。

        

        <3> 使用 lambad 表达式

        

        <4> 使用 lambad表达式  结合  三目运算符 可以简洁的 达成这个效果。

        

21.逆变 in 和 协变 out :在泛型委托   泛型接口中使用。

       《1.》逆变协变的作用。

                以 协变  out 修饰的泛型,其类型只能用作返回值。

                以 逆变  in  修饰的泛型,其类型只能用作参数。

        《2》逆变协变在泛型委托的作用。

                遵循里氏替换原则:父类声明的变量,可以装载子类。

                父类泛型委托装载子类泛型委托的时候 需要使用 out 协变 进行修饰。

                子类泛型委托装载父类泛型委托的时候需要使用逆变 in 进行修饰。

22. 线程 Thread

        

        

        

23. 预处理器指令。一般不同Unity版本可能执行不同的逻辑。不同的平台会执行不同的逻辑。会用到。

        

        

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

「刘一哥GIS」系列专栏《GRASS GIS零基础入门实验教程(配套案例数据)》专栏上线了

「刘一哥GIS」系列专栏《GRASS GIS零基础入门实验教程》全新上线了&#xff0c;欢迎广大GISer朋友关注&#xff0c;一起探索GIS奥秘&#xff0c;分享GIS价值&#xff01; 本专栏以实战案例的形式&#xff0c;深入浅出地介绍了GRASS GIS的基本使用方法&#xff0c;用一个个实例讲…

当当网书籍信息爬虫

1.基本理论 1.1概念体系 网络爬虫又称网络蜘蛛、网络蚂蚁、网络机器人等&#xff0c;可以按照我们设置的规则自动化爬取网络上的信息&#xff0c;这些规则被称为爬虫算法。是一种自动化程序&#xff0c;用于从互联网上抓取数据。爬虫通过模拟浏览器的行为&#xff0c;访问网页…

【12】Word:张老师学术论文❗

目录 题目 ​NO2 NO3 NO4 NO5 NO6 NO7.8 题目 NO2 布局→页面设置→纸张&#xff1a;A4→页边距&#xff1a;上下左右边距→文档网格&#xff1a;只指定行网格→版式&#xff1a;页眉和页脚&#xff1a;页脚距边界&#xff1a;1.4cm居中设置论文页码&#xff1a;插入…

RabbitMQ实现延迟消息发送——实战篇

在项目中&#xff0c;我们经常需要使用消息队列来实现延迟任务&#xff0c;本篇文章就向各位介绍使用RabbitMQ如何实现延迟消息发送&#xff0c;由于是实战篇&#xff0c;所以不会讲太多理论的知识&#xff0c;还不太理解的可以先看看MQ的延迟消息的一个实现原理再来看这篇文章…

【PCL】Segmentation 模块—— 欧几里得聚类提取(Euclidean Cluster Extraction)

1、简介 PCL 的 Euclidean Cluster Extraction&#xff08;欧几里得聚类提取&#xff09; 是一种基于欧几里得距离的点云聚类算法。它的目标是将点云数据分割成多个独立的簇&#xff08;clusters&#xff09;&#xff0c;每个簇代表一个独立的物体或结构。该算法通过计算点与点…

ElasticSearch上

安装ElasticSearch Lucene&#xff1a;Java语言的搜索引擎类库&#xff0c;易扩展&#xff1b;高性能&#xff08;基于倒排索引&#xff09;Elasticsearch基于Lucene&#xff0c;支持分布式&#xff0c;可水平扩展&#xff1b;提供Restful接口&#xff0c;可被任何语言调用Ela…

GitLab:添加SSH密钥之前,您不能通过SSH来拉取或推送项目代码

1、查看服务器是否配置过 [rootkingbal-ecs-7612 ~]# cd .ssh/ [rootkingbal-ecs-7612 .ssh]# ls authorized_keys id_ed25519 id_ed25519.pub id_rsa id_rsa.pub2、创建密钥 $ ssh-keygen -t rsa -C kingbalkingbal.com # -C 后写你的邮箱 一路回车 3、复制密钥 [rootk…

《目标检测数据集下载地址》

一、引言 在计算机视觉的广袤领域中&#xff0c;目标检测宛如一颗璀璨的明星&#xff0c;占据着举足轻重的地位。它宛如赋予计算机一双锐利的 “眼睛”&#xff0c;使其能够精准识别图像或视频中的各类目标&#xff0c;并确定其位置&#xff0c;以边界框的形式清晰呈现。这项技…

Kibana 控制台中提供语义、向量和混合搜索

作者&#xff1a;来自 Elastic Mark_Laney 想要将常规 Elasticsearch 查询与新的 AI 搜索功能结合起来吗&#xff1f;那么&#xff0c;你不需要连接到某个第三方的大型语言模型&#xff08;LLM&#xff09;吗&#xff1f;不。你可以使用 Elastic 的 ELSER 模型来改进现有搜索&a…

Golang Gin系列-3:Gin Framework的项目结构

在Gin教程的第3篇&#xff0c;我们将讨论如何设置你的项目。这不仅仅是把文件扔得到处都是&#xff0c;而是要对所有东西的位置做出明智的选择。相信我&#xff0c;这些东西很重要。如果你做得对&#xff0c;你的项目会更容易处理。当你以后不再为了找东西或添加新功能而绞尽脑…

程序设计:排版、检验报告的上下标解决几种办法

【啰嗦两句】 本文重点在于提供几个针对排版文档、各种检验报告系统等程序设计时&#xff0c;遇到的上下标录入、绘制展示等问题的应对办法&#xff0c;但是准确地说&#xff0c;并没有非常优秀的方案。 【上下标难题】 一般的行业或许对上下标并没有严格要求&#xff0c;多数…

TCP 重传演进:TCP RACK Timer 能替代 RTO 吗

本文的建议适用于想改变 TCP 行为的新协议设计&#xff0c;还是那句话&#xff0c;不要抄 TCP 做 yet another TCP。 RTO 一直是 TCP 传输过程所要尽量避免的&#xff0c;因为它会将状态带入 Loss 进而 Go-Back-N&#xff0c;这是一个昂贵的操作。But 在 Fast-Retransmit 被引…

PCL 新增自定义点类型【2025最新版】

目录 一、自定义点类型1、前言2、定义方法3、代码示例二、合并现有类型三、点云按时间渲染1、CloudCompare渲染2、PCL渲染博客长期更新,本文最近更新时间为:2025年1月18日。 一、自定义点类型 1、前言 PCL库自身定义了很多点云类型,但是在使用的时候时如果要使用自己定义的…

Python操作Excel——openpyxl使用笔记(5)

5 其他操作 5.1 合并单元格 有些Excel表格存在合并多个单元格的情况&#xff0c;此时可以使用工作表的merge_cells函数&#xff0c;例如合并第1~2行和1~2列&#xff1a; import openpyxl from openpyxl.comments import Comment wb openpyxl.load_workbook(./test.xlsx) w…

Linux简介和环境搭建

Linux 介绍和环境搭建 1、发行版本 Linux 操作系统有多个主流发行版本&#xff0c;每个版本根据不同的目标、特点和使用场景为用户提供了不同的功能和体验。 Ubuntu • 特点&#xff1a;Ubuntu 是最为人熟知的 Linux 发行版之一&#xff0c;强调易用性和用户友好性&#xff…

LabVIEW时域近场天线测试

随着通信技术的飞速发展&#xff0c;特别是在5G及未来通信技术中&#xff0c;天线性能的测试需求日益增加。对于短脉冲天线和宽带天线的时域特性测试&#xff0c;传统的频域测试方法已无法满足其需求。时域测试方法在这些应用中具有明显优势&#xff0c;可以提供更快速和精准的…

SQL Server查询计划操作符——查询计划相关操作符(4)

7.3. 查询计划相关操作符 28)Declare:该操作符在查询计划中分配一个本地变量。该操作符是一个语言元素。该操作符具体如图7.2-28所示。 图 7.2-28 查询计划操作符Declare示例 29)Delete:该操作符从一个对象中删除满足其参数列中可选谓词的数据行。该操作符具体如图7.2-29…

复用类(3):在组合与继承之间选择、protected关键字、向上转型

1 在组合与继承之间选择 组合和继承都允许在新的类中放置子对象&#xff0c;组合是显式地这样做&#xff0c;而继承则是隐式地做。你或许想知道二者之间的区别何在&#xff0c;以及怎样在二者之间做出选择。 组合技术通常用于想在新类中使用现有类的功能而非它的接口这种情形。…

Java-数据结构-二叉树习题(1)

对于二叉树的学习&#xff0c;主要的还是得多多练习~毕竟二叉树属于新的知识&#xff0c;并且也并不是线性结构&#xff0c;再加上经常使用递归的方法解决二叉树的问题&#xff0c;所以代码的具体流程还是无法看到的&#xff0c;只能通过画图想象&#xff0c;所以还是必须多加练…

彩色图像面积计算一般方法及MATLAB实现

一、引言 在数字图像处理中&#xff0c;经常需要获取感兴趣区域的面积属性&#xff0c;下面给出图像处理的一般步骤。 1.读入的彩色图像 2.将彩色图像转化为灰度图像 3.灰度图像转化为二值图像 4.区域标记 5.对每个区域的面积进行计算和显示 二、程序代码 %面积计算 cle…