En .NET Framework, al menos en el lenguaje C #, tenemos dos "versiones" del tipo de cadena:
- "cuerda"
- "Cuerda"
Parece que son intercambiables, pero ¿lo son realmente? Si no son intercambiables, ¿es generalmente mejor usar uno en lugar del otro y bajo qué circunstancias?
string
no existe en.net
, solo existe en C #.Respuestas:
Bueno según el MSDN
Donde "String" es de hecho
System.String
.Yo diría que son intercambiables y no hay diferencia cuando y donde debe usar uno u otro.
Sin embargo, sería mejor ser consistente con el que usaste.
fuente
String
(ystring
por lo tanto por alias) son tipos de referencia.Como se señaló, son lo mismo y
string
es solo un aliasString
.Para lo que vale, lo uso
string
para declarar tipos: variables, propiedades, valores de retorno y parámetros. Esto es consistente con el uso de otros tipos de sistemas -int
,bool
,var
etc (aunqueInt32
yBoolean
también son correctos).Lo uso
String
cuando uso los métodos estáticos en la clase String, comoString.Split()
oString.IsNullOrEmpty()
. Siento que esto tiene más sentido porque los métodos pertenecen a una clase, y es coherente con la forma en que uso otros métodos estáticos.fuente
Sugeriría usar minúsculas
string
. MayúsculasString
usará la primera clase llamada String que encuentra en los espacios de nombres importados ... que generalmente esSystem.String
. Es posible que se use su propia clase String.fuente
String
a trabajar, nunca es posible engañarstring
.string
.string
es una palabra clave de C # que es simplemente un alias para elSystem.String
.. pero como es una palabra clave, su editor de colores de sintaxis / IDE lo mostrará en color de palabras clave, igual que int, double, if, else, etc. Estilísticamente, puede preferir usar la palabra clave en lugar del
System.String
tipo (o justoString
después lo has hechousing System;
).Este es un punto de nicho, sin embargo, ya que si bien
bool
,char
,int
,double
ystring
son todos los alias de palabras clave para los tipos de sistemas,string
es un pico, con un out, ya que es un tipo de referencia y los otros son los tipos de valor.fuente
object
es un alias de palabra clave para un tipo de referencia, tambiénstring
es solo un alias paraString
, en última instancia, son lo mismo.Puede utilizar cualquiera prefiere, aunque generalmente uso
string
cuando estoy planeando sobre el uso que sea mucho más como un tipo de datos primitivo (similar aint
,float
obool
) yString
cuando estoy en la planificación de usarlo como un objeto / clase. Por ejemplo:En el caso anterior, planeo usar
foo
simplemente para almacenar algo de texto (efectivamente como primitivo), así que lo usostring
; sin embargo, cuando llamoString.isNullOrWhitespace(string)
usoString
. Hago esto, porque generalmente la primera letra de los nombres de clase se escribe con mayúscula (String
) mientras que la primera letra de primitivas (comoint
) no.fuente
La cadena se usa con el espacio de nombres System.String, la cadena se usa la especificación del compilador C #, además, System.String es un valor de tipo de referencia. Se prefiere tratar con objetos del sistema, cadenas solo para fines literales. El sistema y el sistema ambos funcionan igual.
La cadena también se usa para fines de comparación, igual y otros.
fuente