C# & C++实践中的区别总结

用Unity3D C#开发游戏客户端,一眨眼,发现竟然也用了8年了。2018年10月开始,将之前C++的底层代码封装出C#接口,游戏服务器也开始全面得用C#开发。Windows上开发,生成DLL,原封不动传到Linux上,用.net core直接跑起来。

因为语法原因,C#开发效率比C++高太多太多了。C#主要有如下优点:

委托,用起来就像动态语言一样方便,C++要借助std::function & std::bind;

委托传递参数的方便性,这个不知道该怎么表述;

多态,基类的构造函数里也可以调用虚函数;

数据类型,short, int, long位数是确定的;

static类&成员函数,用起来特方便,大部分情况下,都不须要用Singleton;C++用个静态变量的时候,感觉蛮诡异的;

using引入其他模块的方式,不用考虑代码的目录结构,调整代码目录结构,修改类名之类的太方便了;相对来说,#include方式就反人类了;

属性用起来非常简洁自然;

反射,可以直接用;

泛型运行时功能比C++强大,可以写下面这样的代码:

        public override T Obj<T>(Ot type)
        {
            T obj = null;
            switch (type)
            {
                case Ot.ItemBag:
                    obj = _itemBag as T;
                    break;
                case Ot.ItemHash:
                    obj = _items as T;
                    break;
                case Ot.HeroHash:
                    obj = _heroHash as T;
                    break;
            }

            if (obj == null)
                obj = base.Obj<T>(type);

            return obj;
        }

C#接口也需要Add Refrence(链接)才能用;C++接口仅仅是编译时的概念,这点C++方便一些;

另外,C#标准库比较完整规范。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值