合集-《NET CLR via C#》
摘要:公共语言运行时(Comon Languague Runtitle, CLR) 是一个可由多种编程语言使用的“运行时”,CLR的核心功能(例如内存管理、程序集加载、安全性、异常处理和线程同步)可由面向CLR的所有语言使用,事实上在运行时,CLR根本不关心用哪种语言写源代码,只要编译器是面向CLR的,例
阅读全文
摘要:"运行时"解析类型引用 首先在"C:\Users\LH89\source\repos"目录下,新建Console1工程(C#控制台) 实现简单的代码,并编译为程序集(假定名为Program.exe) using System; public class Program { static void M
阅读全文
摘要:System.Object CLR要求每个类型最终都从System.Object类型派生。由于所有类型最终都从System.Object派生,所以每个类型的每个对象都保证了一组最基本的方法。 公共方法 说明 Equals 如果两个对象具有相同的值,就返回true GetHashCode 返回对象的值
阅读全文
摘要:基元类型 编译器直接支持的数据类型称为基元类型(primitvie type),基元类型直接映射到Framework类库(FCL)中存在的类型。例如,C#的int直接映射到System.Int32类型。因此,以下4行代码都能正确编译,并生成完全相同的IL: int a1 = 0; // 最方便的语法
阅读全文
摘要:类型成员 类型可以定义0个或者多个以下种类的成员。 成员 描述 常量 常量是指出数据值恒定不变的符号。这种符号使代码更易阅读和维护。常量总与类型关联,不与类型的实例关联。常量总与类型关联,不与类型的实例关联 字段 字段表示只读或可读/可写的数据值。字段可以是静态的:这种字段被认为是类型状态的一部分。
阅读全文
摘要:常量 常量是值从不变化的符号。定义常量符号时,它的值必须能在编译时确定。确定后,编译器将常量值保存到程序集元数据中。这意味着只能定义编译器识别的基元类型的常量。在C#中,可用于定义常量:Boolean,Char,Byte,SByte,Int16,UInt16,Int32,UInt32,Int64,U
阅读全文
摘要:类的实例构造器 构造器是将类型的实例初始化为良好状态的特殊方法。构造器方法在“方法定义元数据表”中始终叫做.ctor(constructor的简称)。创建引用类型的实例时,首先为实例的数据字段分配内存,然后初始化对象的附加字段(类型对象指针和同步块索引),最后调用类型的实例构造器来设置对象的初始状态
阅读全文
摘要:面向对象设计和编程的重要原则之一就是数据封装,意味着类型的字段永远不应该公开,否则很容易因为不恰当使用字段而破坏对象的状态。 无参属性 对于类型中数据字段的封装,有以下3点好处: 可能希望访问字段来执行一些“副作用”,缓存某些值或者推迟创建一些内部对象 可能希望以线程安全的方式访问字段 字段可能是一
阅读全文
摘要:事件成员的类型提供了以下功能: 方法能等级它对事件的关注 方法能注销它对事件的关注 事件发生时,登记的方法将收到通知 CLR事件模型以委托为基础。委托是调用回调方法的一种类型安全的方式。对象凭借回调方法接受它们订阅的通知。 设计要公开事件的类型 在某些情况下,当某个事件发生时,你可能不仅仅需要通知接
阅读全文
摘要:泛型(generic)是CLR和编程语言提供的一种特殊机制,它支持另一种形式的代码重用,即“算法重用”。 简单来说,开发人员先定义好算法,必然排序、搜索、交换、比较或者转换等。但是,定义算法的开发人员并不设定该算法要操作什么数据类型;该算法可广泛地应用于不同类型的对象。 泛型为开发人员提供了以下优势
阅读全文

浙公网安备 33010602011771号