VB 2005 y caracteres nullos

01/02/2006 - 16:21 por Silviall | Informe spam
Hola,

Estoy haciendo unas funciones que me quiero asegurar que funcionan
correctament, y intentando arreglar los posibles valores entrados y me he
encontrado con una sorpresa

dim c as char

c=nothing

If TypeOf c Is Char Then
'És un caracter

If Not c Is Nothing Then

strvalor = CStr(c) --> Entra por aquí i el valor de strvalor=""

Else

strvalor = ""

End If

Pero cuando quiero concatenar cualquier cosa a strvalor no me lo hace, pero
si c tiene "" o otro valor funciona correctamente. ¿Cómo trata el nothing?
Porque en el If no entra como nothing.

Un Saludo,

Silviall
 

Leer las respuestas

#1 José Manuel Agüero
01/02/2006 - 20:59 | Informe spam
Hola, Silviall:

Mira más abajo los comentarios insertados.

Saludos.


"Silviall" escribió en el mensaje news:%
| Hola,
|
| Estoy haciendo unas funciones que me quiero asegurar que funcionan
| correctament, y intentando arreglar los posibles valores entrados y me he
| encontrado con una sorpresa
|
| dim c as char
|
| c=nothing

Como Char es un tipo por valor, se asigna su valor predeterminado: ChrW(0)

|
| If TypeOf c Is Char Then

TypeOf requiere que su primer argumento sea un tipo por referencia y Char es un tipo por valor.

| 'És un caracter
|
| If Not c Is Nothing Then


Is requiere que su argumento sea un tipo por referencia y Char es un tipo por valor.

|
| strvalor = CStr(c) --> Entra por aquí i el valor de strvalor=""

Puedes aumentar el rendimiento de tu programa usando c.ToString.

|
| Else
|
| strvalor = ""
|
| End If
|
| Pero cuando quiero concatenar cualquier cosa a strvalor no me lo hace, pero
| si c tiene "" o otro valor funciona correctamente. ¿Cómo trata el nothing?

c no puede tener "" porque una cadena vacía no contiene ningún Char.
Creo que este código lo tienes en un método que toma c como argumento de tipo Object o String. La confusión puede venir de ahí.

| Porque en el If no entra como nothing.
|
| Un Saludo,
|
| Silviall

Preguntas similares