C#纯属初学,很多东西还不是很明白,所以在转换的过程中碰到一些比较菜的问题,自己记录下
1.句柄
C++中句柄类型为:HANDLE
C#中句柄类型为:IntPtr
2. 判断字符串是否为空
(1) 用长度判断:bool isEmpty = (str.Length == 0);
(2) 用Empty判断:bool isEmpty = (str == String.Empty);
(3) 用空字符串判断:bool isEmpty = (str == "");
详细内容参考:http://www.cnblogs.com/jhabb/archive/2011/01/20/1940235.html
3. 结构体
C++与C#都支持结构体,但是C#中应该是没有typedef关键字的,类型重命名使用using关键字
4. 指针
C#原则上是不支持指针的,可以使用,但不推荐。其实,指针真的很灵活,但需要用好了!
5. 后台和前台界面的交互
在C++中,使用系统API调用:SendMessage()/PostMessage()向窗口传递消息,即使用消息驱动机制;
在C#中,一般采用事件驱动,需要自己写事件,后台作为事件的发生者,窗口作为事件的接收者。
实际上,C#中的事件也是使用底层的消息驱动机制,但C#中作了封装;
6. 套接字的select模型
在C++中,有单独的fd_set结构体用作select()函数的检测对象,查看是否有套接字处理连接、读、写的状态;
在C#中,这一函数被封装为Socket类的静态方法,而fd_set也用ArrayList容器代替即可,方便了很多