C#基础总结
01,.net框架包括类库和CLR(公共语言运行库)。C#语言经过csc(编译器)翻译成MSIL(中间语言),经过CLR生成机器语言。
02,IDE指的是你是用的开发工具并包括其版本。
03,类中主要包括字段,属性,方法,事件等。字段用于存储数据,属性可保护字段,取值执行get,赋值执行set,例如字符串的不可变性,字符串可以假设成字符数组,
但其并不能通过字符数组的索引来改变字符串的值,通过F12转到定义可以看见该属性,只有get,并没有set,所以属性保护了字符串的不可变,不过可以遍历字符串存到字符数组。
值类型的值在栈中,引用类型的值在堆中,地址在栈中,所以当写一个函数修改数组值时,不需要返回值,因为传递的是地址。
04,在项目中自定义的类也是引用类型,对象存在堆中。
05,类是不占内存的,对象是占内存的;
06,new 做了三件事:在内存中开辟空间,在开辟的控件创建对象,调用对象的构造函数。
07,构造函数用于初始化对象,初始化对象就是为对象的每一个属性赋值。
08,静态类只用于包含静态成员的类型,不能被实例化,我们可以直接使用它的属性与方法,静态类最大的特点就是共享。静态类的特性是防止继承,防止外部来NEW。它相当于一个sealed abstract类。 静态方法一定要用类名来调用,例如Convert.(方法) 和 string.IsNullOrEmpty() 静态方法不能被实例化 通过反编译工具查看convert属于abstract,抽象类禁止实例化。
09,静态方法未必要写在静态类当中。
10,把一堆成员写到一个类里叫做封装。
11,设计类时,有很多共同成员,代码冗余,此时用新的类将这些共有代码单独封装,作为其他类的父类,叫做继承。
12,通过调试可以看出,子类并非继承父类的构造函数,而是自动调用了父类的构造函数,由此创建父了类对象并初始化数据,才能访问非静态成员。
13,this代表当前类对象,base不是父类对象,而是父类的引用,通过这个引用才能访问父类。子类继承的是父类的属性和方法。
14,判断是否为相同对象:object.ReferenceEquals(p1,p2);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?