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版本可能执行不同的逻辑。不同的平台会执行不同的逻辑。会用到。

相关推荐
xwz小王子9 分钟前
斯坦福大学李飞飞教授团队ARCap: 利用增强现实反馈收集高质量的人类示教以用于机器人学习
学习·机器人·ar
垂杨有暮鸦⊙_⊙19 分钟前
有限元分析学习——Anasys Workbanch第一阶段笔记(9)带孔矩形板与L型支架案例的对称平面处理方案
笔记·学习·有限元分析
时光追逐者21 分钟前
在 .NET 9 中使用 Scalar 替代 Swagger
开源·c#·.net·.netcore·微软技术
军训猫猫头22 分钟前
43.Textbox的数据绑定 C#例子 WPF例子
java·c#·wpf
专注VB编程开发20年24 分钟前
c#有什么显示矢量图SVG的控件VB.NET-svg转透明PNG图像
开发语言·c#·.net·svg·矢量图
蹦蹦跳跳真可爱58939 分钟前
Python----Python基础(字符串,列表,元组,字典,集合的总结)
开发语言·python
灵性(๑>ڡ<)☆40 分钟前
Vue3学习-day4
前端·vue.js·学习
StudyWinter1 小时前
【OpenCV(C++)快速入门】--opencv学习
c++·学习·计算机视觉·openev
元_汐1 小时前
【Python通过UDP协议传输视频数据】(界面识别)
开发语言·网络·python·网络协议·tcp/ip·udp