学习Java的C#开发人员,人们可能忽略的最大区别是什么?[已关闭]

2022-08-31 11:28:12

对于那些盯着学习Java的C#开发人员来说,这两种语言之间有什么大的潜在差异需要指出吗?

也许有些人可能会认为事情是一样的,但是有一些重要的方面不应该被忽视?(或者你真的可以搞砸了!

也许在OOP结构,GC的工作方式,引用,部署相关等方面。


答案 1

我头顶上的一些陷阱:

  • Java没有自定义值类型(结构),所以不要费心寻找它们
  • Java枚举与C#的“命名数字”方法非常不同;他们更讨厌。如果你小心的话,它们可以很好地使用。
  • byte已在 Java 中签名(不幸的是)
  • 在 C# 中,实例变量初始值设定项在基类构造函数之前运行;在Java中,它们在它之后运行(即在“this”类中的构造函数体之前)
  • 在 C# 中,默认情况下会密封方法。在Java中,它们默认为虚拟的。
  • C#中的默认访问修饰符始终是“当前上下文中可用的限制性最强的访问”;在Java中,它是“包”访问。(值得一读的是Java中特定的访问修饰符。
  • Java和C#中的嵌套类型的工作方式略有不同;特别是它们具有不同的访问限制,除非您将嵌套类型声明为,否则它将具有对包含类的实例的隐式引用。static

答案 2

推荐