¿Por qué no hay ningún Char.Empty como String.Empty?
¿Hay alguna razón para esto? Lo pregunto porque si necesita usar muchos caracteres vacíos, entonces se encuentra en la misma situación que cuando usa muchas cadenas vacías.
Editar: El motivo de este uso fue el siguiente:
myString.Replace ('c', '')
Así que elimine todas las instancias de 'c' de myString.
No existen los caracteres vacíos. Lo más cercano que puede llegar es '\0'
el carácter "nulo" Unicode. Dado que puede incrustarlo dentro de cadenas literales o expresarlo por sí solo muy fácilmente, ¿por qué querría un campo separado para ello? Del mismo modo, los argumentos "es fácil de confundir ""
y " "
" no se aplican a '\0'
.
Si pudiera dar un ejemplo de dónde le gustaría usarlo y por qué cree que sería mejor, eso podría ayudar...
El motivo de este uso fue el siguiente:
myString.Replace ('c', '')
elimine todas las instancias de'c'
myString.
Para eliminar un carácter específico de una cadena, puedes usar la sobrecarga de cadena:
myString = myString.Replace ("c", String.Empty);
Tu declaración
myString.Replace ('c', '\0')
No eliminará ningún carácter. Simplemente los reemplazará con '\0'
(End-Of-String, EOS), con distintas consecuencias. Algunas operaciones de cadenas pueden detenerse al encontrar un EOS, pero en .NET la mayoría de las acciones lo tratarán como cualquier otro carácter. Lo mejor es evitarlo '\0'
tanto como sea posible.
Un char, a diferencia de una cadena, es algo discreto con un tamaño fijo. Una cadena es en realidad un contenedor de caracteres.
Entonces, Char.Empty realmente no tiene sentido en ese contexto. Si tienes un carácter, no está vacío.
No existen los personajes vacíos. Siempre contiene algo . Incluso '\0' es un carácter.