C#是C的超集吗?

Rob*_*uld 11 c c# programming-languages

C#无论如何都是C的超集,比如Objective-C或C++?有没有办法用构造这样的编译器标志在线编译C?

Sam*_*rum 37

总之,没有.

  • @bobwienholt - 我同意 - 我认为更好的答案没有被投票,这是一种耻辱.我认为问题在于更复杂的答案需要通过研究来确定它们是正确的,因此正确地进行投票是很困难的.由于它的简单性,这个很容易upvote. (3认同)

xyz*_*xyz 13

没有任何有意义的方式.它的灵感来自C(以及其他),但它们是完全不同的语言.


God*_*eke 10

语法而言,C#来自"c-like"系列,但就架构而言,它更像是Java(没有指针[好吧,如下所述,你可以使用它们,但是大多数人都不知道或者关心那个],绑定数组,垃圾收集内存等).

您可以在C++中获得更多,但不在核心中.


Joh*_*itb 8

我们这样说:

CC#像类似rm -rf . /# rm -rf . /相似

简而言之,没有C不是C#的子集.许多控制结构的外观基于C.比如,for-loops,switch,while等等.同时,C#禁止具有潜在危险的构造,例如在忘记中断时从交换机中的情况下掉落;或者将整数作为if条件放置,其中布尔值是预期的.上面的引用意味着C#和C看起来非常相似,但转化为截然不同的结果.C不会阻止你从你的分区中删除所有东西,C#会保护你不要错误地这样做,比喻说.

在另一个级别,C允许您键入指向整数的指针,推送它们,转回然后访问存储在该指针中的内存位置.C不会保护您不会访问未分配的内存.你会崩溃 - 充其量.另一方面,C#会有例外情况,当您执行访问对象时会注意到引用空引用.