我很了解Java。哪些警告和资源将帮助我尽可能轻松地跨越另一方(C#)。
答案 0 :(得分:33)
最大提示:请使用单词go中的.NET naming conventions。通过这种方式,您将不断被提醒您所处的语言。(听起来很愚蠢,但它确实很有用。)尽可能地接受语言的习语。
在你的情况下,有各种各样的专门针对人们的书籍 - 在亚马逊搜索“C#for Java”,你会获得大量的点击率。值得仔细阅读 ,以确保您不会认为C#中的内容与Java相同。 (例如,在C#实例中,变量初始值设定项在基类构造函数体之前执行;在Java中它们发生在它之后。像这样的微妙的东西可能需要一段时间才能学习,如果你正在略读则容易错过。)
如果您打算使用C#3,我会得到一本绝对涵盖的书 - C#3中的所有内容对您来说都是新的。无偿的插件:我自己的书(C# in Depth)涵盖C#2和3,但假设你已经知道C#1。(换句话说,它本身是不够的,但你可能想要它作为一个“第二本“书。”
答案 1 :(得分:13)
请参阅C# from a Java Developer's Perspective上的这篇精彩文章。它对双方可以做的事情有几点见解,以避免最小的开销。以您熟悉的语言和您想学习的语言为例,可以简化学习过程。
答案 2 :(得分:3)
答案 3 :(得分:1)
我知道已经接受了一个好的答案。但是,我想补充一下......
我发现学习一门新语言通常需要学习细微的语法差异......特别是在处理C / C ++ / Java / C#系列语言之间的差异时。
除了一本很好的厚厚的参考书,我还建议你找一个像C# 3 Pocket Reference from O'Reilly这样的口袋参考书。它对设计模式等没有帮助......但会提供非常快速的参考,说明您正在使用的语言的具体差异。
以下是该网站对本书的简要介绍:
C#3.0 Pocket Reference包含大量插图和代码示例,供您解释:
- C#3.0的新功能,例如lambda表达式,匿名类型,自动属性等
- C#语法,预定义类型,表达式和运算符的所有方面
- 创建类,结构,委托和事件,枚举,泛型和约束,异常处理和迭代器
- 拳击的微妙之处,操作重载,委托协方差,扩展方法解析,界面重新实现,可空类型和操作提升
- LINQ,从序列原理,延迟执行和标准查询运算符开始,最后完成对查询语法的完整引用 - 包括多个生成器,连接,分组和查询延续
- 使用,编写和反映自定义属性
我使用这本书(原文)来帮助我从一个Java变成一个C#开发人员。在我学习的过程中,我一直把它放在我的办公桌旁,这真的很有帮助。
答案 4 :(得分:1)
我在工作中使用C#很容易实现转换,但最重要的事情之一就是熟悉.NET API和C#中提供的一些强大技术。
在我学习.net库之后,我比以前更依赖它了,所以了解它可以为你做的事情是非常有帮助的。之后,如果您使用db代码,请学习LINQ,并且还可以使用lambas,匿名类型和委托等技术。
答案 5 :(得分:0)
语言语法有所不同,所以我应该只阅读C#语法的一个小参考。就像一本简单的书(对于有经验的程序员)或维基百科(http://en.wikipedia.org/wiki/Comparison_of_Java_and_C_Sharp)会说得足够多。
最大的区别是库:Asp.Net网站与java servlet完全不同。
阅读不多,只需开始编程!
答案 6 :(得分:0)
这是一个在Java和C#之间进行语法比较的链接(尽管它几乎相同,但存在一些差异)。
http://www.harding.edu/fmccown/java1_5_csharp_comparison.html
答案 7 :(得分:0)
使用Sharpen将您的Java程序转换为C#并查看差异。
答案 8 :(得分:0)
Microsoft提供了cheat-sheet,供使用C#的Java开发人员使用:)