C#编程基础要点:字段、构造、扩展方法与垃圾回收
需积分: 3 170 浏览量
更新于2024-09-14
收藏 176KB DOC 举报
在C#编程中,本文档提供了关于C#语言的关键知识点,包括以下几个方面:
1. **只读字段**:在C#中,只读字段在定义时或构造函数中初始化,一旦设置,其值不能被修改。
2. **继承与构造函数调用规则**:子类的构造函数会首先调用父类的构造函数,如果有带参数的构造函数,则优先调用对应的父类构造函数,如果没有,则调用无参构造函数。
3. **类型参数和泛型**:`public class Farm<T>`展示了泛型的使用,其中`T`是一个类型参数,要求它必须是某个特定的类。`where T: 类名`进一步限制了类型参数的选择。
4. **访问修饰符**:默认情况下,类的访问级别是`internal`,成员默认为`private`,这意味着它们只能在同一个程序集中使用。VS中的快捷键可用于操作属性(Ctrl + R + E)。
5. **扩展方法**:扩展方法是C#的独特功能,它允许静态类为非自身类型的实例添加方法。扩展方法的定义要求类为`static`,方法修饰符为`public static`,且第一个参数通常为`this`关键字,表示扩展的对象。
6. **枚举与标志**:使用`[Flags]`特性标记枚举,允许值进行按位或运算,方便判断组合状态。例如,值1、2、4、8等可以组合起来表示不同的状态。
7. **接口与抽象类的区别**:接口提供一组抽象方法,用于定义行为规范,而抽象类则可以包含具体实现和抽象方法。抽象类通常用于具有共同特征的类的基类,而接口更适用于行为不同的类之间的关联。
8. **字符串处理与内存管理**:字符串使用字符串池技术,将重复的字符串对象合并到一个共享的内存区域,通过`string.Intern()`可以检查字符串是否已经在池中。`string.Equals()`和`==`运算符的重载以及`object.ReferenceEquals()`用于比较对象。
9. **垃圾回收**:C#的垃圾回收仅负责回收托管堆中的内存,不涉及非托管资源如数据库连接、文件句柄等。弱引用用于跟踪已被垃圾回收但仍可能存在的对象,适合资源占用较多的情况。
10. **实例创建与弱引用**:通过`new`关键字创建对象,`WeakReference`提供了一种方式来跟踪对象,即使对象已被回收,仍可通过弱引用尝试访问,但需要检测对象是否还存在。
这些知识点覆盖了C#中的基础语法、面向对象编程、泛型、内存管理和性能优化等方面,有助于理解和使用C#进行高效开发。
2018-04-01 上传
2011-04-15 上传
2020-09-05 上传
2020-06-17 上传
885 浏览量
2008-05-20 上传
2011-03-17 上传
2014-10-31 上传
2013-12-12 上传
angrywsman
- 粉丝: 1
- 资源: 2
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫