扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
下面是C#和Java共有的特性列表,目的都是为了改进C++。这些特性虽非本文重点,但了解它们之间的相似之处还是很重要的。
l 编译为机器独立、语言独立的代码,运行在受控执行环境里;
l 采用垃圾收集机制,同时摒弃了指针(C#中,指针被限制在标为unsafe的代码内使用);
l 强有力的反射能力;
l 没有头文件,所有的代码都在包或组合体里,不存在类声明的循环依赖问题;
l 所有的类都派生自object,且必须用new关键字分配在堆上;【译注:Java中为Object;C#中为object,相当于.NET的System.Object】
l 当进入标为锁定/同步代码时,通过在对象上加锁来支持多线程;【译注:例如Java中可对方法施以synchronized关键字,在C#中可使用Monitor类、Mutex类、lock语句等等】
l 接口支持—多继承接口,单继承实现;
l 内部类;
l 类继承时无需指定访问级别;【译注:在C++中,你可以这么做:class cls2: private cls1{};等等】
l 没有全局函数或常量,一切都必须属于类;
l 数组和字符串都保存长度记数并具边界检查能力;
l 永远使用“.”操作符,不再有“->”、“::”操作符;
l null和boolean/bool是关键字;【译注:Java中为boolean、C#中为bool,相当于System.Boolean】
l 所有的值在使用前必须被初始化;
l if语句不能使用整型数为判别条件;
l try语句块后可以跟finally从句。【译注:标准C++不可以,但Visual C++对SEH做了扩展,可以用__try和__finally】
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者