随笔分类 - CLR via C# 读书笔记
摘要:什么是序列化和反序列化序列化(serialization)是将一个对象或者对象图(对象在特定的时间点的一个视图)转换成一个字节流的过程。反序列化(deserialization)是将一个字节流转换回对象图的过程。应用场景:应用程序的状态(对象图)可以保存到磁盘文件或数据库中,并在应用程序下次运行时恢复。一组对象可以轻松复制到Windows 窗体的剪贴板中,再粘贴回同一个或者另一个应用程序。将对象按值从一个应用程序域中发送到另一个程序域序列化/反序列化快速入门引用 System.Runtime.Serialization.Formatters.Binaryprivate static Memor
阅读全文
摘要:常量(constant)是一个特殊的符号,它有一个从不变化的值。定义常量符号时,它的值必须能在编译时确定。确定之后,编译器将常量的值保存在程序集的元数据中。常量的定义必须用基元类型,在c#中,Boolean 、Char、Byte、SByte、Int16、UInt16、Int32、UInt32、Int64、Single、Double、Decimal和String。C#也允许定义一个非基元类型的常量变量,前提是常量变量的值设定为null常量被看作是类型定义的一部分,可以看作是静态类型运行时不需要为常量分配内存,不能获取常量的地址,也不能以传引用的方式传递常量字段(field)字段是一种数据成员,其
阅读全文
摘要:可空值类型一个值类型的变量永远不可能为null;它总是包含值类型的值本身。某些情况下会成为问题。如:数据库中的一个列可能允许值为空 ,为了与数据库中的列相对应,CLR引入了可空值类型 。可空值类型FCL中的定义[Serializable, StructLayout(LayoutKind.Sequential)]public struct Nullable<T> where T : struct{//这两个字段表示状态private Boolean hasValue = false; //假定nullinternal T value = default(T); //假定所有比特都是零
阅读全文
摘要:初识委托委托是一种定义方法签名的类型。实例化委托时,可以将其实例与任何具有兼容签名的方法相关联。通过委托实例调用方法。委托用于将方法作为参数传递给其他方法。事件处理就是通过委托调用的方法声明一个委托//声明一个委托类型//方法获取2个Int32类型的参数 ,返回值为voidpublic delegate void PerformCalculation(int num1, int num2);使用委托直接上代码:View Code //声明委托 internal delegate void PerformCalculation(int num1, int num2...
阅读全文
摘要:类型定义:枚举类型(enumerated types)定义了一组“符号名称/值”配对示例:internal enum Color{ White, //默认赋值0 Red, //赋值为1 Green, //赋值为2 Blue, //赋值为3 Orange //赋值为4}类型本质:所有的枚举类型都隐式的继承自System.Enum类型,System.Enum类型是继承自System.ValueType类型唯一不为值类型的引用类型。System.Enum的定义:public abstract class ...
阅读全文
摘要:1、什么是事件 事件是类的一种成员。负责类或对象之间的消息通知。发送(或引发)事件的类称为“发行者”,接收(或处理)事件的类称为“订阅者”。发行者 定义事件成员定义引发事件的方法(通过此方法通知事件的登记对象)定义方法将输入转化为期望的事件(引发事件的方法)订阅者 注册在事件成员被触发时调用的方法 消息(发行者通过事件向订阅者传递的信息)类派生自System.EventArgs2、事件的特点发行者确定何时引发事件,订户确定执行何种操作来响应该事件一个事件可以有多个订户。 一个订户可处理来自多个发行者的多个事件没有订户的事件永远也不会引发事件通常用于通知用户操作,例如,图形用户界面中的按钮单..
阅读全文
浙公网安备 33010602011771号