- 博客(9)
- 收藏
- 关注
原创 C#系列学习笔记9:泛型
泛型泛型常用泛型集合协变和逆变泛型泛型,在初始化类、方法、接口等之前,延迟指定一个或多个类型,直到实际在程序中使用它的时候,这样可以降低运行时转换或装箱操作的成本或风险。有时候在封装代码的时候,我们不关心组件之间传递的是什么类型的数据,这时就可以用泛型来定义数据。System.Collections.Generic命名空间包含几个基于泛型的集合类。在声明泛型类、结构的时候,我们可以通过使用 where 上下文关键字指定约束public class Employee{ public Empl
2020-09-14 19:20:10
147
原创 C#系列学习笔记8:程序集和命名空间
程序集和命名空间程序集是代码的一个物理集合,通常扩展名是EXE或DLL的.NET可执行程序称为程序集,由一个或多个文件组成。程序集主要由清单、类型元数据、CIL代码和资源组成。清单。主要包含了程序集标识符、组成程序集的文件列表、本程序引用的其他程序集列表和关于哪个类型被包含在哪个程序集的地图。包含:标识(名称、版本、文化和公钥)。属于该程序集的一个文件列表。引用程序集的列表。一组许可请求——运行这个程序集所需要的许可。导出的类型。类型元数据。关于程序集中所有类型的元数据。CIL
2020-09-14 19:19:16
301
原创 C#系列学习笔记7:委托与事件
委托与事件delegateeventdelegate委托相当于c/c++中的函数指针,用于实现 event 和 回调函数,所有的委托都继承自System.Delegatepublic delegate void Del(string message); // 定义了一个可以调用任何形参为string、无返回的委托public void Print(string message){ Console.WriteLine( message );}Del handler1 = new D
2020-09-14 19:17:43
134
原创 C#系列学习笔记6:接口
接口常用的一些接口interface 与 abstract class 的区别接口是对class和struct的一种协定和约束,它规定了继承对象中必须包含的method,property,event,索引器。接口在继承对象中的方法实现是virtual的,但不能加上virtual关键字。接口只指定了继承对象必须实现的成员,同时接口可以多重继承,例如.NET的BCL中对栈的实现:[DebuggerDisplay("Count = {Count}")] [DebuggerTypeProxy(typeo
2020-09-14 19:15:49
146
原创 C#系列学习笔记5:装箱和拆箱
如何扩展类?扩展方法被定义为static方法,但它们是通过实例方法语法进行调用的。第一个参数指定方法操作的类型。参数前面是this修饰符。仅当使用using指令将命名空间显式导入到源代码中之后,扩展方法才位于范围中。namespace ExtensionMethods{ public static class MyExtensions { public static int WordCount(this String str) // 扩展String类的方
2020-09-14 19:13:50
83
原创 C#系列学习笔记4:装箱和拆箱
装箱和拆箱装箱:值 -> 对象。拆箱:对象 -> 值。c#中的数据类型可以分为 值 和 引用。值 包括byte,short,int,long,float,double,decimal,char,bool,enum,struct,变量直接存储数据,编译器分配内存 ;引用。string,object,和 class 统称为引用类型。当声明一个类时,只在栈中分配一小片内存用于容纳一个地址,而此时并没有为其分配堆上的内存空间。当使用 new 创建一个类的实例时,分配堆上的空间,并把堆上空间的地址
2020-09-01 14:24:18
179
原创 C#系列学习笔记3:面向对象的4大特性
面向对象的4大特性面向对象编程的4大特性分别是抽象,封装,继承, 多态抽象。class实际上是对要解决问题的一种抽象,抽象出问题中一些信息,通过类中的数据和方法来描述封装。面向对象编程通过访问修饰符控制了class中字段的访问权限,用属性get和set控制数据的读写权限,类中的private (可能还有protected) 内容对外部来说是被封装起来的。从而构建起class与外部相区分的边界。访问修饰符:用于设定对类、成员、方法的访问限制。public:成员可以被任何代码访问private
2020-09-01 11:13:40
407
原创 C#系列学习笔记2:托管资源与非托管资源
托管资源与非托管资源托管资源非托管资源垃圾回收托管资源C#的机制与Java类似,运行于.NET平台上的代码,分配的资源一般会自动由平台的垃圾回收器释放,这样的资源就是托管资源。这种管理机制称为GC(garbage collection)。当系统内存资源匮乏时,GC就会被激发,自动去释放那些没有被使用的托管资源(也就是程序员没有显式释放的对象)。像数组,用户定义的类、接口、委托、object、string等引用类型,栈上只保存着一个地址而已。当栈释放后,即使对象已经没有用了,但堆上分配的内存还在,只能等G
2020-08-24 14:22:00
287
原创 C#系列学习笔记1:.Net和JIT
C#系列学习笔记1:.Net和JIT.NetJIT.Net.NET是跨语言的一个平台,核心就是.NET Framwork,是.NET程序开发和运行的环境。语言可以是C#,f#,j#,VB.net等等。c#是运行在.Net平台下的一种面向对象的高级编程语言。.Net框架的组成分为两部分:CLR:公共语言运行时(Common Language Runtime),提供内在管理,代码安全性检测等功能。FCL:.NET框架类库(.NET Framework Class Library),提供大量应用类
2020-08-24 14:17:50
2107
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人