随笔分类 - .NET基础篇
摘要:.NET Core 使用 CoreCLR .NET Framework 使用CLR. 1. 将代码编译为IL (Intermediate Language) 2. CLR 把IL 编译为平台专用的本地代码. IL 运行时, JIT(Just-In-Time) Compiler 编译IL代码, 创建特
阅读全文
摘要:大家都知道, .NET是分托管和非托管. 当我们要释放一些内存的时候, 我们可以使用IDisposable. 支持IDisposable接口的对象必须实现Dispose()方法. 但是c# 允许使用一种可以优化使用这个方法的结构. Using 关键字. Using的职责 在编译阶段, 编译器会自动将
阅读全文
摘要:delegate double Operation(double d1, double d2); static double Multiply(double p1, double p2) { return p1 * p2; } static double Divide(double p1, dou...
阅读全文
摘要:抽象类(abstract) 是特殊的虚类(virtual) 当父类的方法不知道如何去实现,可以考虑把父类写成抽象类,讲方法写成抽象方法。 抽象类可以包括 virtual method(virtual method 有方法体), abstract method(abstract method 没有方法
阅读全文
摘要:在装箱拆箱之前简单说一下值类型、引用类型: 值类型:原类型(Sbyte、Byte、Short、Ushort、Int、Uint、Long、Ulong、Char、Float、Double、Bool、Decimal)、枚举(enum)、结构(struct)等,是在栈中分配内存,在申明的同时就初始化,以确保
阅读全文
摘要:里式转换 1. 子类可以赋值给父类。 2. 如果父类中装的事子类对象,那么可以讲这个父类强行转换成子类 3. is 和 as 的用法 is:表示类型转换, 如果转换成功 返回true || false as: 表示类型转换, 如果能返回成功,则返回对应的对象,否则返回null
阅读全文
摘要:什么是多态: 父类的一些成员,子类继承周去重写从而实现不同的功能。 多态的风雷 多态分为两种,一种是编译时的多态,一种是运行时的多态。 编译时多态:编译时的多态性是通过重载来实现的。 编译时的多态性:编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息
阅读全文
摘要:继承 继承很好理解。 孩子拥有父亲的某些特性。 一个类可以被多个类继承。 1. 当class A 能够获取class B 中所有非private 的数据和操作的定义做为自己的部分或者全部部分是,就称为这两个类之间有继承关系。 2. 被继承的类B称为父类或者基类,继承了父类的类A称为子类或派生类。 继
阅读全文
摘要:封装 封装:每个对象都包含有它能进行操作的所有信息,这个特性称为封装。这样的方法包含在类中,通过类的实例来实现。 e.g. 我们可以使用遥控器。 遥控器有多个功能 封装的优点 A.良好的封装能够减少耦合(比如实现界面和逻辑分离) B.可以让类对外接口不变,内部可以实现自由的修改 C.类具有清晰的对外
阅读全文
摘要:值类型和引用类型的区别: 1. 值类型和引用类型在内存上储存的地方不一样。堆和栈。 2.在传递值类型和传递引用类型的时候,传递的方式不一样。 值类型我们称之为值传递,引用类型我们称之为引用传递。 值类型:int, double, bool, char, decimal, struct, enum C
阅读全文
摘要:1. out 参数。 如果你在一个方法中,返回多个相同类型的值,可以考虑返回一个数组。 但是,如果返回多个不同类型的值,返回数组就不可取。这个时候可以考虑使用out参数。 out参数就侧重于在一个方法中可以返回多个不同类型的值。 Ref参数 能够将一个变量带入一个方法中进行改变,改变完成后,再将改变
阅读全文
摘要:.NET绝大内存垃圾会有 Common Language Runtime (CLR) 公共语言运行时自动回收,但是有一部分需要我们来手动回收。 托管资源:一般指CLR控制的内存资源, 资源由CLR来管理。GC负责垃圾回收 非托管资源:不受CLR控制和管理的资源。GC不知道如何释放,需要人工进行释放。
阅读全文