如何从Java迁移到C#

本文关键字:迁移 Java | 更新日期: 2023-09-27 17:47:48

我很了解Java。哪些注意事项和资源将帮助我尽可能轻松地过渡到另一边(C#)。

如何从Java迁移到C#

最大的提示:使用go一词中的.NET命名约定。这样你就会不断地被提醒你使用的是哪种语言。(听起来很傻,但这确实很有帮助。)尽可能地接受语言中的习语。

有各种各样的书专门为处于这种情况的人准备——在亚马逊上搜索"C#for Java",你会得到很多点击。值得仔细阅读,以确保您不会认为C#和Java中的工作原理相同。(例如,在C#实例中,变量初始值设定项在基类构造函数主体之前执行;在Java中,它们发生在之后。像这样的微妙事情可能需要一段时间才能学习,如果你只是略读,很容易错过。)

如果你打算使用C#3,我会有一本书,它肯定涵盖了这一点——C#3中的一切对你来说都是新的。免费插件:我自己的书(深度C#)涵盖了C#2和3,但假设你已经知道C#1。(换句话说,它本身是不够的,但你可能希望它是一本"第二本"书。)

从Java开发人员的角度来看这篇关于C#的伟大文章。它对双方都可以做的事情有一些见解,以避免最小的开销。在你所知道的语言和你想学习的语言中都有榜样,这在很大程度上简化了学习曲线。

  1. 使用IntelliJ IDEA密钥绑定安装Visual Studio 2008和Resharper。这样可以在开始使用名称空间时提示您包含名称空间
  2. 启动一个新项目并开始编写Java代码,当你遇到一些无法正常工作的东西,或者它找不到你试图使用谷歌"c#中的PrintLn"的类时
  3. 编写用于健全性检查的测试或代码片段,就像您可能想检查==是否适用于字符串一样(确实如此)
  4. 意识到c#alias数据类型(int是System.Int32的别名,string是System.string的别名)
  5. 看看其他人的代码我推荐JP Boodhoos谷歌代码
  6. 以C#为例,有很多工作需要Java和C#,尤其是在支持方面
  7. 了解您的库,大多数Java库都已移植,大多数时候名称要么像(Hibernate=>NHibernate),要么像(Xstream=>Xstream.Net)。并不是每个库都有一个明显的名称,所以只需开始查找您在这里听到的随机库即可。ie(Rhino.Mocks、HTMLAgilityPack、MBUnit、Rhino.Commons、Castle Project)
  8. 参加用户小组会议,寻找一个DNUG(Dot-Net用户小组),他们会很有帮助,你可以得到一些好的建议

微软为使用C#的Java开发人员提供了一份备忘单:)

我知道已经接受了一个好的答案。不过,我想补充一点。。。

我发现学习一门新语言通常需要学习微妙的句法差异。。。。尤其是在处理C/C++/Java/C#族中的语言之间的差异时。

除了一本很好的厚参考书,我建议你从奥莱利那里得到一本像C#袖珍参考书这样的袖珍参考书。它对你的设计模式等没有帮助,但会提供一个关于你使用的语言的具体差异的快速参考。

以下是该网站上关于这本书的简介:

C#3.0袖珍参考包括大量的插图和代码示例来解释:

  • C#3.0的新增功能,如lambda表达式、匿名类型、自动属性等
  • C#语法、预定义类型、表达式和运算符的所有方面
  • 创建类、结构、委托和事件、枚举、泛型和约束、异常处理和迭代器
  • 装箱、操作重载、委托协方差、扩展方法解析、接口重新实现、可为null的类型和操作提升的微妙之处
  • LINQ,从序列、延迟执行和标准查询运算符的原理开始,最后完整引用查询语法,包括多个生成器、连接、分组和查询延续
  • 消费、书写和反思自定义属性

我用这本书(好吧,原版)帮助我从一名Java开发人员变成了一名C#开发人员。当我学习的时候,我一直把它放在桌子旁,它真的很有帮助。

我在工作中使用C#非常容易地完成了转换,但最重要的事情之一是熟悉.NET API和C#中的一些强大技术。

在我学习了.net库之后,我比以前更加依赖它,所以了解它可以为你做的事情非常有帮助。之后,如果您使用数据库代码,那么学习LINQ,以及lambas、匿名类型和委托等技术也是非常有用的。

语言语法各不相同,所以我应该只读一小部分C#语法参考。就像一本简单的书(针对经验丰富的程序员)或维基百科(http://en.wikipedia.org/wiki/Comparison_of_Java_and_C_Sharp)就足够了。

最大的区别在于库:Asp.Net网站与javaservlet完全不同。

不要读太多书,开始编程吧!

这里有一个链接,它对Java和C#之间的语法进行了比较(尽管它几乎相同,但也有一些不同)。

http://www.harding.edu/fmccown/java1_5_csharp_comparison.html

使用Sharpen将Java程序转换为C#并查看差异。