首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
<NET CLR via c# 第4版>笔记 第5章 基元类型、引用类型和值类型
】的更多相关文章
<NET CLR via c# 第4版>笔记 第5章 基元类型、引用类型和值类型
5.1 编程语言的基元类型 c#不管在什么操作系统上运行,int始终映射到System.Int32; long始终映射到System.Int64 可以通过checked/unchecked操作符/语句打开或关闭溢出检查,如: byte b = 100; b = checked((byte)(b + 200)); uint invalid = unchecked((uint)(-1)); checked { b += 200; } 在checked操作符或语句中调用方法,不会对该方法造成任何影响,…
<NET CLR via c# 第4版>笔记 第13章 接口
13.1 类和接口继承 13.2 定义接口 C#用 interface 关键字定义接口.接口中可定义方法,事件,无参属性和有参属性(C#的索引器),但不能定义任何构造器方法,也不能定义任何实例字段. 13.3 继承接口 C#编译器要求将实现接口的方法(简称为"接口方法")标记为public. CLR要求将接口方法标记为 virtual .不将方法显式标记为 virtual ,编译器会将它们标记为 virtual 和 sealed;这会阻止派生类重写接口方法.将方法显式标记为 virtu…
<NET CLR via c# 第4版>笔记 第12章 泛型
泛型优势: 源代码保护 使用泛型算法的开发人员不需要访问算法的源代码.(使用c++模板的泛型技术,算法的源代码必须提供给使用算法的用户) 类型安全 向List<DateTime>实例添加一个String对象会报错. 更清晰的代码 减少了源代码中必须进行的强制类型转换次数,使代码更容易编写和维护. 更佳的性能 对于值类型实例,可以减少装箱拆箱次数. 12.1 FCL中的泛型 12.2 泛型基础结构 12.2.1 开放类型和封闭类型 具有泛型类型参数的类型称为开放类型,CLR禁止构造开放类型的任何…
<NET CLR via c# 第4版>笔记 第8章 方法
8.1 实例构造器和类(引用类型) 构造引用类型的对象时,在调用类型的实例构造器之前,为对象分配的内存总是先被归零 .没有被构造器显式重写的所有字段都保证获得 0 或 null 值. 构造器不能被继承.不能使用以下修饰符: virtual,new,override,sealed和abstract. 如果基类没有提供无参构造器,那么派生类必须显式调用一个基类构造器,否则编译器会报错. 如果类的修饰符为 static(sealed 和 abstract),编译器不会生成默认构造器.(静态类在元数据中…
<NET CLR via c# 第4版>笔记 第19章 可空值类型
System.Nullable<T> 是结构. 19.1 C# 对可空值类型的支持 C# 允许用问号表示法来声明可空值类型,如: Int32? x = 5; Int32? y = null; System.Nullable<T>应用操作符解析规则: 一元操作符(+, ++, -, --, !, ~) 操作数是 null ,结果就是 null. 二元操作符(+, -, *, /, %, &, |, ^, <<, >>) 两个操作数任何一个是 null…
<NET CLR via c# 第4版>笔记 第17章 委托
17.1 初识委托 .net 通过委托来提供回调函数机制. 委托确保回调方法是类型安全的. 委托允许顺序调用多个方法. 17.2 用委托回调静态方法 将方法绑定到委托时,C# 和 CLR 都允许引用类型的 协变性(covariance) 和 逆变性(contravariance). 协变性是指方法能返回从委托的返回类型派生的一个类型. 逆变性是方法获取的参数可以是委托的参数类型的基类. 只有引用类型才支持协变性与逆变性,值类型或 void 不支持 delegate object MyCallba…
<NET CLR via c# 第4版>笔记 第16章 数组
//创建一个一维数组 int[] myIntegers; //声明一个数组引用 myIntegers = new int[100]; //创建含有100个int的数组 //创建一个二维数组 double[,] myDoubles = new double[10, 20]; //创建一个三维数组 string[,,] myStrings = new string[5, 3, 10]; //创建交错数组 Point[][] myPolygons = new Point[3][]; myPolygon…
<NET CLR via c# 第4版>笔记 第7章 常量和字段
7.1 常量 常量 是值从不变化的符号.定义常量符号时,它的值必须能够在编译时确定. 只能定义编译器识别的基元类型的常量,如果是非基元类型,需把值设为null. 常量的值直接嵌入代码,所以不能获取常量地址,不能以传引用的方式传递常量. 不能很好地支持跨程序集的版本控制(修改一个DLL中的常量值,需要重新编译所有引用该DLL的程序才可以). 只有确定一个符号的值从不变化才应定义常量. public sealed class SomeLibraryType { //注意:c#不允许为常量指定 sta…
<NET CLR via c# 第4版>笔记 第9章 参数
9.1 可选参数和命名参数 class Program { private static int s_n = 0; private static void M(int x = 9, string s = "A", DateTime dt = default(DateTime), Guid guid = new Guid()) { Console.WriteLine("x={0},s={1},dt={2},guid={3}", x, s, dt, guid); } p…
C#学习笔记10:Try-catch的用法和引用类型、值类型整理
Try-Catch: 将可能发生异常的代码放到try中,在catch中进行捕获. 如果try中有一行代码发生了异常,那么这行代码后面的代码不会再被执行了. Try写完了以后,紧接着就要写Catch 中间不能有其它的代码 Try-Catch-finally Finally:不管出现没出现异常,finally中的代码都会被执行,多用于资源的释放. Try { Int a=Convert.Toint32(string a); Console.Write("成功"); } Catch { …