对于任何有幸同时使用Java和C#的人来说,这都是一个问题。
你是否发现当你从一个移动到另一个时,你必须进行某种形式的心理上下文转换?
我目前正在从事这两个方面的工作,因为语法和库是如此相似,但又有细微的不同,当我从一个转到另一个时,我发现这很令人沮丧。
这是我经历过的在其他编程语言之间转换的最多情况。
有没有人有什么建议可以让你的大脑在如此相似的语言中以不同的方式工作?
发布于 2008-10-08 13:32:34
是的,我必须进行心理上下文切换-因为LINQ在Java中不可用:(
除此之外,还有一些小事情,比如foreach (X x in y)和for (X x : y),它们经常让我绊倒,但在其他方面并不是很多。
至于让你的大脑以不同的方式工作的小窍门:不要放弃使用另一种语言的命名约定的诱惑。例如,我发现在Java中使用驼峰大小写的方法名称对我的大脑有很好的推动作用。
编辑:泛型方面的差异很重要,有时也会让人大吃一惊。
发布于 2008-10-08 13:33:55
我发现最困难的切换是围绕泛型( C#做得更好)、委托( Java使用匿名内部类)和事件( Java没有的)
我发现确保你使用了该语言的习惯用法(例如,使用委托而不是在C#中创建接口)将帮助你快速进入正轨。
发布于 2008-10-08 15:05:39
其他人提到的语言差异是最明显和最有问题的。我也发现库的差异有时令人抓狂,并且真的浪费了很多时间。
“细节”也能让你明白,比如理解内存模型是如何工作的,或者你的运行时执行优化的方式。对运行时环境的内存模型、垃圾收集技术、线程模型等有深入的了解,可以在您思考和开发软件的方式上创建重大的更改。
我不能明智地比较Java和C#的细节,但我可以说,在Java中我会做的许多事情,我不舒服或不确定我是否可以在C#中做,因为我不理解它的低级细节,这影响了我为从图形用户界面工作者交互到处理内存管理的一切编写的代码。
我发现处理Java和C#差异的最好方法就是简单地把它们看作是完全不同的语言--避免"C#和Java基本上是同一种语言,具有不同的类名“的陷阱。
https://stackoverflow.com/questions/182749
复制相似问题