2010-08-05 6 views
12

Empecé la codificación de mi carrera en C/C++ en un sistema vax, pero obtuve algunos contratos donde todo era VB y luego me convertí en especialista en VB y luego en VB.net. Ahora aspiro a trabajar para Microsoft y parece que cada trabajo que publican está en C/C++/C# y apenas puedo leer el código C#, me parece el lío más intrincado y la sintaxis en línea casi daña mis sentimientos.¿Cómo ajusto mis habilidades C#, cuando pasé la última década codificando en VB?

Estoy buscando sugerencias positivas, no inflamadas y útiles sobre cómo volver a aprender habilidades C#. Libros ... Laboratorios ... etc? He estado codificando proyectos simples usando Silverlight y C# para intentar resolverlo, pero es extremadamente frustrante ya que hay muy pocos ejemplos que pueda encontrar que ilustren cómo se ve cada conjunto de códigos. He buscado en Google pero aún no he encontrado nada útil aparte de los laboratorios de channel9 y estoy trabajando en algunos de los códigos/proyectos de ejemplo de mix10.

No estoy buscando un atajo, sino una buena comprensión de habilidades sólidas. Juro que es más fácil traducir inglés a latín que VB a C#.

+16

"Juro que es más fácil de traducir Inglés a latín que VB a C#. " Tienes que estar bromeando. La traducción entre VB.Net y C# es prácticamente literal. C# tiene punto y coma y corchetes alrededor de bloques, vb tiene End XXX en su lugar. La sintaxis de llamada de función es idéntica en muchos usos y ambas dependen del mismo BCL. Me resulta extraño que estés teniendo tantos problemas con algunos puntos y comas. –

+2

Has desarrollado una carrera en C/C++, que debería darte una ventaja sobre C#. Mi política es que si quiero ser un experto en algo, me sumergiré en ese entorno durante 6 meses, 24-7. Después de 6 meses, si no me siento cómodo con el título de "experto", haga otra cosa. Las cosas parecerán frustrantes, pero créanlo o no, se acostumbrarán. Cada vez que compro un teléfono celular, me siento frustrado sobre cómo usarlo. Después de 6 meses de usar el teléfono todos los días, puedo usarlo con los ojos cerrados. Ta DAA !!! ¡¡Experto!! – user279521

+0

He estado trabajando mucho con LINQ últimamente y tratando de aprender que, siempre he usado SProcs para controlar la recuperación de datos, pero las aplicaciones de negocios Silverlight 4 parecen preferir LINQ sobre SProcs. Mi punto es que muchas de las declaraciones en línea que he estado viendo son ejemplos LINQ lambda en línea y tratar de encontrar ejemplos VB.NET LINQ es casi imposible, así que he estado tratando de convertir esos ejemplos C# a VB.Net LINQ, lo que provocó la Comentario de inglés a latín – Stryder

Respuesta

14

Personalmente, comenzaba convirtiendo un proyecto VB.NET en C#, habiendo hecho VB.NET no sería difícil una vez que comenzaste ya que ambos usan el mismo CLR subyacente.

Haciéndolo de esta manera paso a paso, buscando cómo convertir cada bit que no entiende, pronto terminará enseñándose a sí mismo C# basándonos en su conocimiento de VB.NET y verá que ¡Realmente no es tan diferente!

Los encuentro muy similares ahora los conozco a los dos, ellos solo tienen la costumbre de hacer las cosas 'levemente' de manera diferente.

También, eche un vistazo a la página wiki this para una comparación resumida de VB.NET y C#, y vea los ejemplos en la parte inferior para ver algunas comparaciones de sintaxis básicas que le darán un punto de partida para convertir VB.NET en C#.

+0

Eso enseñará los conceptos básicos de la sintaxis, pero se perderá completamente las expresiones idiomáticas de C#. –

+2

Sí, pero por los sonidos de eso es exactamente lo que necesita.Una vez que ha aprendido los conceptos básicos y ha desarrollado su confianza con C#, puede buscar ampliar sus conocimientos y habilidades en áreas más avanzadas de C# – w69rdy

+0

Gracias por el enlace al wiki que me ha sido de gran ayuda, también estoy tomando su Asesoramiento y conversión de uno de mis proyectos más pequeños de VB en C#. Construir los proyectos de ejemplo en los que reescribes lo que ves en línea no fue hacerlo por mí, nunca se me pasó por la mente convertir uno de mis proyectos existentes. – Stryder

0

Scott Hanselman publica una columna regular de su blog llamada "Weekly Source Code", que está hecha de código fuente, generalmente C#, de la que puede aprender leyendo.

+1

Sin embargo, suelen ser ejemplos bastante complejos. No veo a alguien que tenga problemas para leer el C# básico que avanza mucho con ellos. –

0

Mi primera elección es la dada por W69rdy: convierta algún proyecto que ya haya realizado en VB a C#.

En segundo lugar, leería la documentación de C#, o una fuente en línea como la sugerida por James, al menos una vez al día buscando algo que no entiendas. Tal vez algo tan simple como una palabra clave de idioma que no reconoces. Luego escribe algo que lo use: incluso algo tan simple como un pequeño fragmento.

1

Compre "Head first C#" y disfrute de la codificación. Es el mejor libro (según yo y algunos otros) en el mercado aprendiendo C#.

alt text

+0

¡Gracias por la referencia del libro! – Stryder

4

Desde VB.NET y C# son los dos lenguajes .NET orientados a objetos de primera clase que compilan hasta el casi el mismo código CIL, me resulta bastante fácil para cambiar entre los dos. La mayor parte de la curva de aprendizaje en .NET proviene del aprendizaje de la miríada de API; la sintaxis no toma mucho tiempo para recoger.

lo recomiendo un buen libro que se centra en el lenguaje de C# (es decir, no un marco como Winforms, Silverlight o WPF). Un libro que realmente me gustó fue Illustrated C# 2008 de Daniel Solis. Es excelente para exponer el lenguaje C# de punta a punta.(NOTA: aunque dice "Ilustrado" en el título, no está lleno de muchas imágenes bonitas. "Ilustrado" simplemente significa que el autor usa muchos diagramas útiles para explicar los conceptos).

Además, pasé mucho tiempo resolviendo problemas matemáticos en http://www.projecteuler.net para aprender C#. Ayuda a tener problemas reales que resolver para aprender un idioma y Project Euler ofrece problemas que son lo suficientemente pequeños como para que puedas concentrarte en aprender diferentes aspectos del idioma.

+0

El hecho de que el código se compile de la misma manera no significa que sea fácil cambiar entre ellos. Por ejemplo F # también compila a CIL, pero es muy diferente de VB.Net y C# debido a su naturaleza funcional. Pero tanto VB.Net como C# son ALGOL similares, por lo que sería más fácil compararlos entre sí. –

+0

@Matthew ese es un buen punto. No son fáciles de cambiar simplemente porque compilan hasta lo mismo. Intentaré aclarar. –

+0

Gracias por la referencia del libro y el enlace al Proyecto Euler que nunca había visto antes. – Stryder

0

Si está buscando una lectura rápida y un tutorial, this uno funcionará. Estoy de acuerdo con @TechNeilogy y @ W69rdy en que la conversión de un programa de VB.NET a C# ayudará a comprender las similitudes y diferencias entre los languarges.

Convertí un servicio de Windows VB.NET en un servicio Windows de C# y me ayudó mucho al tratar de aprender C#.

0

Yo era un programador de VB .NET también. Descubrí que usar el complemento Resharper Visual Studio de Jetbrain realmente ayudó a mi curva de aprendizaje. Inicialmente estaba convirtiendo/optimizando un proyecto VB .NET en C# y las herramientas de asistencia de codificación me resultaron realmente útiles. La mayoría de las veces, solo estaba tratando de encontrar el equivalente de C# para que la finalización del código por lo general me pusiera en la dirección correcta.

0

También me he mudado recientemente a C# de VB - He encontrado this converter invaluable como herramienta de aprendizaje cuando no conoces un poco de sintaxis C# pero puedes escribirlo en VB.

0

Debe comenzar con algunos tutoriales de C# en Internet para comprender cómo trabajar con C#, luego lea un libro con un máximo de 300 páginas. Después de eso, puede comenzar la conversión de VB a C#. No es difícil. Buena suerte.

0

Uso tanto vb.net como C# en el trabajo. Algunas veces en el mismo proyecto, incluso. Honestamente, cuando cambias de un lado a otro, después de la primera pareja extraviada o que falta ; o Dim, es bastante fácil saltar entre los dos. El resto de las cosas (modificadores de clase, controladores de eventos, etc.) están a solo un rápido de Google de distancia.

2

Es extraño que tengas esta dificultad si aún recuerdas algo de C. Tengo un fondo similar pero no encuentro C# difícil de leer en absoluto.

¿Está confundido por LINQ o lambdas/anonymous methods? EDITAR dices que es LINQ: aquí hay algunos enlaces para LINQ.

  • La sintaxis de LINQ es diferente en VB desde C# y hay not much help out there para la sintaxis de VB. El MSDN 101 VB LINQ samples es bueno, y también me gustó la cobertura en el libro Programming VB 2008.
  • Las lambdas son una forma de escribir métodos en línea que podría ser la "sintaxis en línea" a la que se refiere? En ese caso, simplemente lea sobre ellos y pruébelos: puede probarlos en C# o VB.Net.

Hubo algunos artículos útiles sobre las diferencias entre C# y VB.Net en la revista Visual Studio en enero de 2008.

Usted también puede estar interesado en la pregunta "what's allowed in VB that is prohibited in C# (or vice versa)"

revelación completa: la parte inferior de esta respuesta se copia casi sin cambios desde this question on converting C# knowledge to VB.Net

+0

Tenías razón, estaba mirando principalmente expresiones LINQ. He estado compilando 4 aplicaciones de negocios de silverlight y tratando de encontrar ejemplos para expresiones LINQ que son imposibles de encontrar para VB.Net y he intentado convertirlos y es muy frustrante por decir lo menos. Los artículos de la revista Visual Studio fueron muy útiles. También gracias por el enlace a la otra pregunta. – Stryder

+0

Estoy totalmente de acuerdo, tengo exactamente el mismo problema y encuentro que C# LINQ es difícil de leer, ya que es diferente de VB LINQ. [Oh, parece que no somos los únicos] (http://msdn.microsoft.com/en-us/vbasic/bb688088.aspx). Editaré mi respuesta con algunos enlaces sobre LINQ. Los [101 ejemplos de VB.NET LINQ en MSDN] (http://msdn.microsoft.com/en-us/vbasic/bb688088.aspx) son útiles, también me gustó la cobertura en el libro [Programación VB2008] (http: //rads.stackoverflow.com/amzn/click/0596518439) – MarkJ

+0

+1 para el enlace * Lo que los desarrolladores de VB deben saber sobre C# * y sobre todos los otros excelentes enlaces. –

0

¡La única forma en que realmente vas a dar el paso es simplemente dar un paso adelante y correr con ella!

Seguro, mira un tutorial básico o lee una guía sobre C# para aprender los principios básicos de la sintaxis, pero luego necesitas encontrar un proyecto bastante simple y autónomo en el que puedas quedarte atrapado. Si conoce algo del framework .NET (que presumiblemente hace), entonces el salto no será tan bueno. Obviamente, ¡no elija un vasto y complejo sistema de misión crítica para empezar!

De hecho, aunque mi proyecto actual es mi primer proyecto de C#, no puedo creer que no haya hecho el cambio antes. Además de disfrutar de C#, también me resulta más fácil porque estoy descubriendo que hay más ejemplos de buena calidad.

0

No me refiero a esto condescendientemente, ¡pero la respuesta es simplemente comenzar a codificar en C#!

Hay muchos libros, recursos, CD de capacitación (consulte AppDev.com para obtener una gran capacitación basada en video) pero nada se compara con la codificación de problemas de la vida real.

(Y estoy de acuerdo con un comentario anterior sobre la conversión de un reciente proyecto de C#.)

"Lo que aprendemos a hacer, aprender haciendo" Aristóteles

Cuestiones relacionadas