2008-10-17 30 views
28

Conozco bien Java. ¿Qué advertencias y recursos me ayudarán a cruzar al otro lado (C#) tan fácilmente como sea posible?¿Cómo paso de Java a C#?

+1

Además, no es una respuesta a esto específicamente, pero obtenga y lea (de principio a fin) CLR Via C# por Jeffrey Richter. Estamos en la versión 3.5 (sp1) del framework, pero el CLR sigue siendo la versión 2.0. Ese libro le dará las bases sobre las cuales se construye todo – Will

+0

La transición de C# a Java y viceversa es muy fácil. Tienen muchas similitudes y la mayoría de los paradigmas de programación que aprendiste en Java continuarán. – mmcdole

Respuesta

29

Consejo más grande: vaya con el .NET naming conventions de la palabra ir. De esa forma, constantemente se le recordará en qué idioma se encuentra. (Suena tonto, pero realmente es útil.) Acepte las expresiones idiomáticas del idioma lo más posible.

Hay varios libros específicamente para personas en su situación: busque "C# for Java" en Amazon y obtendrá muchos éxitos. Vale la pena leer cuidadosamente para asegurarse de que no suponga que las cosas funcionarán igual en C# que en Java. (Por ejemplo, en C# los inicializadores de variables de instancia se ejecutan antes del cuerpo constructor de la clase base, en Java se producen después. Las cosas sutiles como esta pueden tardar un tiempo en aprenderse, y son fáciles de detectar si se está descremando.)

Si vas a usar C# 3, obtendría un libro que definitivamente lo cubre, todo en C# 3 será nuevo para ti. Enchufe gratuito: mi propio libro (C# in Depth) cubre C# 2 y 3, pero supone que ya conoces C# 1. (En otras palabras, no será suficiente por sí solo, pero puede que quieras como un "segundo" libro.)

+0

C# en profundidad fue una buena lectura de acuerdo con alguien que no es el autor, también (es decir, yo!). Aunque debo confesar que creo que la portada es bastante fea. –

+5

Es menos feo de lo que hubiera sido con una foto de mí allí :) –

9

Ver este artículo en C# from a Java Developer's Perspective. Tiene varias ideas sobre las cosas que se pueden hacer en ambos lados para evitar una sobrecarga mínima. Tener ejemplos tanto en el idioma que conoce como en el idioma que desea aprender facilita bastante la curva de aprendizaje.

0

La sintaxis del lenguaje es muy similar, por lo que solo debería leer una pequeña referencia de la sintaxis de C#. Como un libro simple (para programadores experimentados) o tal vez wikipedia (http://en.wikipedia.org/wiki/Comparison_of_Java_and_C_Sharp) dirá suficiente.

La mayor diferencia es la biblioteca: los sitios web de Asp.Net son totalmente diferentes de los servlets de Java.

No lea mucho, ¡solo comience a programar!

+1

NO use el modelo de formularios web ASP.NET antiguo y reventado. Omitirlo para ASP.NET MVC. Marco mucho mejor. – Will

+0

Los lenguajes * eran * muy similares, particularmente Java 1.4 vs C# 1. En estos días son realmente muy diferentes, e incluso cuando * se ven * similares (por ejemplo, genéricos) pueden ser mundos aparte. –

+0

Creer que los dos idiomas son similares es una gran manera de encontrarse en un mundo de dolor ... esto puede conducir fácilmente a pasar por alto las diferencias sutiles, como la forma en que se vuelve a lanzar una excepción. –

2
  1. instalar Visual Studio 2008 y ReSharper con las asociaciones de teclas IntelliJ IDEA. Esto le proporciona elementos como solicitarle que incluya espacios de nombres si comienza a usarlos.
  2. Comience un nuevo proyecto y comience a escribir código Java, cuando se encuentra con algo que no funciona correctamente o no puede encontrar la clase que está tratando de usar Google "PrintLn in C#".
  3. pruebas de escribir o fragmentos de código para comprobaciones de validez, como es posible que desee comprobar si funciona == para cuerdas (lo hace)
  4. darse cuenta de que los tipos C# alias de datos (int es un alias para System.Int32, cadena para el Sistema .Cadena)
  5. mira el código de otras personas Yo recomiendo JP Boodhoos Google code
  6. Toma un trabajo en C#, hay muchos trabajos que requieren tanto Java como C# especialmente en soporte.
  7. Conozca sus bibliotecas, la mayoría de las bibliotecas de Java se han portado y la mayoría de las veces el nombre es similar (Hibernate => NHibernate) o (Xstream => Xstream.Net). No todas las bibliotecas tienen un nombre obvio, así que simplemente comienza a buscar las más aleatorias de las que escuchas aquí. es decir, (Rhino.Mocks, HTMLAgilityPack, MBUnit, Rhino.Commons, Castle Project)
  8. Ir a las reuniones del grupo de usuarios para buscar un DNUG (grupo de usuarios de Dot Net) te serán útiles y podrás obtener buenos consejos.
0

Utilice Sharpen para convertir sus programas de Java a C# y vea las diferencias.

0

Sé que ya se ha aceptado una buena respuesta. Sin embargo, me gustaría hacer una adición ...

Me parece que aprender un nuevo idioma generalmente implica aprender diferencias sintácticas sutiles .... especialmente cuando se trata de la diferencia entre los lenguajes en el C/C++/Java/Familia C#.

Además de un buen libro de referencia grueso, recomiendo obtener una referencia de bolsillo como C# 3 Pocket Reference from O'Reilly. No lo ayudará con los patrones de diseño, etc., pero proporcionará una referencia muy rápida de sobre las diferencias específicas del idioma que está utilizando.

Aquí es una propaganda rápida sobre este libro de ese sitio:

C# 3.0 Pocket Reference incluye un montón de ilustraciones y ejemplos de código para explicar:

  • Características nuevo en C# 3.0, tales como lambda expresiones, tipos anónimos, propiedades automáticas, y más
  • Todos los aspectos de la sintaxis C#, tipos predefinidos, expresiones y operadores
  • Creación de clases, estructuras, delegaciones tes y eventos, enumeraciones, genéricos y restricciones, manejo de excepciones, y iteradores
  • las sutilezas de boxeo, la sobrecarga de funcionamiento, delegar covarianza, la resolución de métodos de extensión, reimplementación interfaz, tipos anulables, y que opera levantar
  • LINQ, a partir de la principios de secuencias, aplaza la ejecución y operadores de consulta estándar, y terminando con una referencia completa a la sintaxis de consulta, incluyendo múltiples generadores, unirse, agrupamiento y consulta continuaciones
  • el consumo, la escritura y la reflexión sobre atributos personalizados

Utilicé este libro (y el original) para ayudarme a pasar de ser un desarrollador de Java a C#. Mientras estaba aprendiendo, lo mantuve en mi escritorio todo el tiempo y realmente me ayudó.

1

Hice la transición con bastante facilidad usando C# en el trabajo, pero una de las cosas más importantes que hacer es familiarizarse con la API de .NET y algunas de las poderosas técnicas disponibles en C#.

Después de aprender la biblioteca .net, confié en ella mucho más de lo que solía hacerlo, así que aprender sobre las cosas que puede hacer por usted es muy útil.Después de eso, si trabajas con código db, aprende LINQ y también técnicas útiles como lambas, tipos anónimos y delegados.

Cuestiones relacionadas