摘要:
1. 理解“Windows 窗体应用程序”项目中Program.cs文件中的main方法与传统C++Console控制台程序中的main方法的区别。从程序运行层次上讲,两者无区别,都是程序的入口点,属于进程中的第一个线程。前者隐藏了UI应用程序必需的消息循环,后者没有。2. 每个Windows桌面应... 阅读全文
摘要:
其实我们应该一直很熟悉委托、匿名方法、Lambda表达式的关系的,作用差不多,写法却越来越简单,当然相互之间却不能完全代替的。今天研究了一下Lambda表达式的替换。 要求建立一个winform窗体,拖一Button控件,点击Button,执行一个耗时操作(用多线程),耗时操作结束后,在窗体上显示结束信息。要求很简洁,解法也很简单。一般解法Code highlighting produced by... 阅读全文
摘要:
四月计算机语言排行榜,C王者归来,重登王者宝座,居然干掉了JAVA。说在前面的。 都说c++是面向对象的,可为了满足c++语言的初衷:a better C!c++不得不兼容C,于是我们还是看得到写在类外面的函数、变量什么的,C#就不同了,结合Java和c++的各自优点,完全的面向对象,今天我要说的是用C来模仿C#中的面向对象,注意,仅是模仿~~~1)、c#中有类class,那么在C中用结构体str... 阅读全文
摘要:
System.Linq.Enumerable类为我们提供了许多扩展方法,一般实现了IEnumerable<T>接口的类型都能被扩展,比如Enumerable类中定义了OrderBy方法,该方法用来根据某个键值对目标值序列排序,那么int[] 类型就能拥有OrderBy这个方法了。 其中OrderBy方法有两个参数,一个为要扩展类型的对象:this IEnumerable<TSou... 阅读全文
摘要:
我们知道定义一个委托之后,就可以像MyDelegate(3,7)这样回调方法,其实每一个委托对象都是一个类对象,每一个委托对象中都有一个Invoke的同步成员方法(查MSDN得知),系统实际调用的是MyDelegate.Invoke(3,7).那么Invoke的内部结构怎样的呢?当然MSDN上面肯定查不出来了,琢磨了一下,可以模仿一下的嘛!Invoke的内部实现(伪代码)Code highligh... 阅读全文
摘要:
委托的定义想必大家都知道,它本质上是一个类,我们定义一个委托:[代码]经过编译后,编译器自动生成一个从MultiCastDelegate继承下来的密封类:[代码]那么,Decrement这个类中应该包含哪些成员呢?经过分析,编译器给我们生成的完整的Decrement类应该是这样的:完整的Decrement类 Code highlighting produced by Actipro CodeHig... 阅读全文