C#/.NET: Diferencia entre String y string
Pregunta de Invitado | 09/01/2021 a las 20:42
Al programar con C#, es posible declarar una string (cadena) con letras minúsculas y mayúsculas:
string s = "ABC"; String S = "ABC";
Ambas formas parecen funcionar de la misma manera en mi código. Por lo tanto, me pregunto si hay alguna diferencia entre ambas declaraciones y, si no, me pregunto si hay dos tipos de cadenas diferentes disponibles. ¿En qué situación debería usar qué variante?
Temas Relacionados
C# - Mensaje de Error: .NET 2.0 DLL in .NET 4.0 cannot be loaded in the 4.0 runtime without additional configuration information
Pregunta | 1 Respuesta
MySQL: Eliminar Datos de Tabla - Diferencia entre TRUNCATE, DELETE y DROP
Tutorial | 0 Comentarios
C#/.NET: Diferencia entre int y uint
Pregunta | 1 Respuesta
Diferencia entre Todo Incluido y Pensión Completa
Pregunta | 1 Respuesta
HTML: Preasignar un Formulario HTML con Datos
Tutorial | 0 Comentarios
JavaScript: window.location como String
Información | 0 Comentarios
C#/.NET: Cambiar Extensión de Archivo
Pregunta | 1 Respuesta
Aviso Importante
Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.
Participar
Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.
En C#, "string" es un alias de "System.String". Entonces, técnicamente, ambas declaraciones son de hecho idénticas, porque internamente, "string" se define como "String".
Sin embargo, recomiendo usar la declaración en minúsculas siempre que necesite un objeto de string, por ejemplo:
Sin embargo, si necesita alguna función de clase, debe usar la variante en mayúsculas:
En este ejemplo, estamos creando 3 objetos de string (a, b y c) usando la string en minúsculas y estamos usando la función de clase String.Concat con la String en mayúsculas para almacenar el resultado en el objeto s.
Otro argumento para seguir este camino es que "string" es una construcción léxica introducida conscientemente como una abstracción que debería usarse para una string predeterminada. Aparte de eso, "System.String" es solo un tipo. Por lo tanto, si en algún momento en el futuro (poco probable) se debe cambiar el tipo de string predeterminado, la string ya no será la misma que System.String y si ya ha usado "string", estaría en el lado seguro porque "string"se cambiaría al nuevo tipo de string predeterminado en este momento y no tendría que cambiar su código.
Por cierto, lo mismo se aplica también a int (= System.Int32), long (= System.Int6), bool (= System.Boolean), char (= System.Char), object (= System.Object) y muchos otros tipos.
10/01/2021 a las 23:01