Avatar ·

¿Cuál es la diferencia entre String y string en C#? ¿Son tipos diferentes?

¡Hola a todos! Empecé a estudiar C# recientemente y hay algo que me confunde. En diferentes ejemplos de código veo que las cadenas se declaran de manera distinta: algunos escriben `string name = "John";` y otros `String name = "John";`. Ambas funcionan, IntelliSense no se queja. Pero, ¿son nombres diferentes? ¿Quizás `String` es una clase de .NET y `string` es un tipo primitivo? ¿O es lo mismo? Intenté escribir este código: ```csharp string a = "Hello"; String b = "World"; Console.WriteLine(a.GetType()); // System.String Console.WriteLine(b.GetType()); // System.String Console.WriteLine(a == b); // True ``` Ambas veces se muestra `System.String`, y la comparación funciona. Pero si es lo mismo, ¿por qué dos nombres? ¿Quizás hay alguna diferencia en rendimiento o en cómo manejan la memoria? ¿O es solo una cuestión de estilo? Agradecería una explicación detallada, porque tengo miedo de escribir algo incorrecto en un proyecto real. <<>>

Respuesta breve