C++项目转到C#时碰到的几个问题

75 篇文章 2 订阅

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容器代替即可,方便了很多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值