摘要:
工作的时候遇到静态字段书写,优先考虑下面几个方面(意识): 1. 如果是多次使用,要注意对静态字段的重新初始化,防止之前的状态对新的过程的影响或保存之前状态用于之后过程; 2. 注意静态字段对内存的影响(静态字段所保存的数据会一直驻留在内存中,存在于整个程序的生命周期,如果不显示的释放 -- 设置为 阅读全文
摘要:
一. C# 原始代码和直接结果 测试 C# 代码: class Program { static void Main(string[] args) { A c1 = new C(); c1.Foo(); C c2 = new C(); c2.Foo(); Console.ReadKey(); } } 阅读全文
摘要:
一. 介绍 最近充能看书,在书上看到函数调用可以 " 通过 ldftn 获得函数指针,然后使用 calli 指令 " 来进行调用,并说这种行为 " 类似 C 的函数指针,但是 C# 不支持这种行为 ",那么这是一种什么样的调用呢?我翻阅了一些资料,才知道 ldftn 和 calli 分别是 IL 语 阅读全文
摘要:
大家都知道在C#中,如果B类继承自A类,如果一个对象是B类型的但是转换为A类型之后,这个对象是无法在调用属于B类型的方法的,如下例子: 基类A: public class A { } 派生类B: public class B : A { public void Test() { Console.Wr 阅读全文
摘要:
一. 测试方法调用形式 1. 实例方法调用 2. 静态方法调用 3. 实例方法反射调用 4. 委托方法的Invoke调用 5. 委托方法的DynamicInvoke调用 6.委托方法的BeginInvoke调用 二. 测试要点 1. 首先要先对测试代码和测试工具的方法进行预热处理,即先调用一次然方法 阅读全文
摘要:
一. 引子 先来看如下代码: int i = 0; Action action1 = () => { Console.WriteLine("打印一下i的值:" + i); }; i = 1; Action action2 = () => { Console.WriteLine("打印一下i的值:" 阅读全文
摘要:
一. 委托的分类 通过用什么类型的方法来声明为委托,可以分为两类: 1. 委托静态方法:把一个静态方法给委托 2. 委托实例方法:把一个实例对象的成员方法给委托 (这两个名字是博主取的,可能不是很专业只是为了好区分) 二. 原理部分 委托是将函数指针和实例对象打包在一起的类,它有两个重要的成员,一个 阅读全文