2012-06-25 5 views
8

Soy consciente de que puedo fijar nula comoCómo establecer el valor de cadena como nula

string val = null; 

Pero me pregunto las otras maneras en que puedo establecen a NULL. ¿Hay una función como String.null que pueda usar?

+6

¿Por qué necesitarías otra forma de hacerlo? – Charleh

+1

por qué harían string val = String.null ser mejor ... los null tienen muy poco que ver con las cadenas –

+0

¿Quiere decir un 'static void StringUtils.SetNull (out string s)' que establece 's' en' null'? Eso sería otro en mi humilde opinión. ¿Qué pasa con la asignación? –

Respuesta

21

Creo que busca ahora String.Empty

string val = String.Empty; 

Actualización: TheFuzzyGiggler comentarios son dignos de mención:

Es mucho mejor establecer un string en empty en lugar de null. Para evitar excepciones después. Si tiene que leer y escribir muchas cadenas , tendrá null excepciones de valor en todas partes. O usted tiene una tonelada de if(!string.isNullorEmpty(string)) el que conseguir molesto

+6

¡Pásame! Si OP lee esto ...Descubrí que es MUCHO mejor configurar una cadena como vacía que como nula. Para evitar excepciones más adelante. Si tiene que leer y escribir muchas cadenas, tendrá excepciones de valor nulo en todo el lugar. O tendrás toneladas de if (! String.isNullorEmpty (string)) que se vuelven molestas. – TheFuzzyGiggler

+2

+1 Su explicación merece una respuesta por separado ... –

+6

Gracias por los puntales. Me alegro de poder ayudar. Dejaré que Asif se lleve la gloria del representante. =) – TheFuzzyGiggler

4

null no es un valor de cadena especial (hay String.Empty para ""), pero es un literal de objeto general para la referencia vacía.

14

También puede usar la palabra clave predeterminada.

string val = default(string); 

Aquí es otra cuestión SO relación con la palabra clave por defecto: What is the use of `default` keyword in C#?

+3

... que es lo mismo que 'string val = (string) null;', es decir, una referencia nula tipada. – Wormbo

+0

@Wormbo - correcto. Sin embargo, lo bueno de usar 'default' es que funciona con ambos tipos de valores y tipos de referencia. –

-1

Dependiendo de la aplicación se puede utilizar string.Empty. Siempre estoy receloso de inicializarme al null ya que el recolector de basura es genial, pero no perfecto, y podría marcar su cadena para recolección de basura si se usa de alguna manera que el recolector de basura no puede detectar (aunque es poco probable).

0

Obviamente una forma más de establecer algo en nulo es asignar resultado de la función que devuelve un valor nulo:

string SomeFunctionThatReturnsNullString() {return null;} 

string val = SomeFunctionThatReturnsNullString(); 
0

asignarlo a este valor hará que sea un nulo, (eligió el tipo de datos SQL bien, aquí su doble)

System.Data.SqlTypes.SqlDouble.Null 
Cuestiones relacionadas