C#可以从Java学到什么?

Joh*_*esH 7 c# java

自从我开始编程以来,我一直是"微软开发人员"...我开始学习QBasic然后学习ASP和Visual Basic,最后我开始学习VB.NET,ASP.NET和C#,这是我现在的主要语言.我一直想学习像Java或C++这样的东西,看看"另一面"是什么样的,并了解每个平台的优缺点.唯一的问题是我从来没有找到时间或机会来学习另一种语言.

我的基本理解是Java和C#有很多相似之处以及很多不同之处.来自C#我最感兴趣的是C#可以从Java学到什么,或换句话说,我错过了什么.

Noo*_*ilk 12

没什么,C#基于Java :)

准备被荒谬地投票

  • +1'准备被荒谬地投票' (3认同)
  • 我不同意它基于Java,但它确实从中获取灵感.许多Java功能已经过调整,而其他功能则被遗漏了(例如,检查了例外情况). (3认同)
  • 同意检查异常,我很高兴发现它们在C#中消失了:)我当然认为C#从Java的角度来看已经做的不错,现在正朝着更黑暗的方向发展,因为它希望更像JavaScript:P (2认同)

Pra*_*dda 10

应该像Enums一样支持Java,在C#中它们只是数字的名称!

  • 这是一个公平的观点."真正的"类没有得到很好的语法糖,[Flags()]属性等. (2认同)

And*_*ite 9

我认为如果C#强制执行每个文件的一个公共类并强制您将代码文件放在与命名空间匹配的目录结构(即"包")中,那么C#会更好.这是我非常喜欢Java的一件事让C#感到沮丧,尤其是当人们开始移动.cs文件并将多个公共类放在一个文件中时.

  • 这在Java中是一个绝对令人沮丧的事情.数以百计的文件夹,最空虚,绝对无用.重构也很痛苦! (4认同)
  • 如果你有数百个空文件夹,我认为你做得不对. (4认同)
  • 我相信StyleCop比语言规范本身更多. (2认同)

Kar*_*arl 2

  • 检查异常
  • 子模块的包可见性。AFAIK 每个组件只能有一个模块。我的意思是一组紧密耦合的类,它们可以互相看到,但应该对外界隐藏。

  • 我认为在观察 Java 的使用经验后,已检查的异常被明确排除在外。 (6认同)
  • 斯蒂芬·C:那么你还没有充分使用java:) duffymo 是完全正确的。c# 了解到检查异常会导致糟糕的编码方法,并且通常没有用,因此它们消失了!万岁! (5认同)