C#是如何受到C++而不是Java的启发?[已关闭]

在查看C#的历史时,我发现C#被视为C和/或C++的更新。这对我来说有点令人惊讶,因为从表面上看,我看到C#和Java之间更常见的想法(垃圾回收浮现在脑海中)。我不用Java编写代码,但是我通常没有问题遵循Java代码,并且经常阅读有关Java中模式的书籍,我可以很容易地在C#中转置,老实说,对于C++,我不能说同样的话。
所以我的问题是,C#如何更接近C++而不是Java?这仅仅是拒绝承认Java,还是我遗漏或误解了什么?


答案 1

它的名字以字母C开头。


答案 2

IMO,C#更多地受到C++而不是Java的启发的想法仅仅是营销;试图以Java永远无法做到的方式将顽固C++程序员带入托管世界。任何看过这段历史的人,特别是90年代中期Sun和微软之间的Java VM战争,都可以看到Java是主要的父级。

C#的语法仅在某些领域更接近C++:指针操作(Java没有),派生声明(即 而不是 ),和运算符重载。public class Foo : Bar, IBazpublic class Foo extends Bar implements IBaz

其他一切都像Java一样(在类声明中声明的静态main声明,没有头文件,单继承,许多其他),就像Java和C++(基本语法)一样,或者是唯一的C#(属性,委托,许多其他)。