Como funciona el tostring en cualquier variable.

Iniciado por Baaaw Oic, 1 Marzo 2010, 20:35 PM

0 Miembros y 1 Visitante están viendo este tema.

Baaaw Oic

Si tengo una variable entera y quiero convertirla a string hago lo siguiente:

dim numero as integer = 10
dim texto as string=numero.tostring()

Listo ahora el numero es string.
Como cunfiona el string, supongo que quiero crear alo parecido por ejemplo.

dim numero as integer = 10
dim texto as string=numero.toABC()

Como puedo hacer posible eso... alguna idea .. ( el ejemplo solo es demostrativo )

Gracias

Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Baaaw Oic

Es decir que deseo crear algo parecido al tostring que se pueda aplicar a cualquier variable, objeto, etc...

por ejemplo el equivalente al tostring() seria toestructura() y este se debe poder aplicar a:

dim nm as integer=14
nm.toestructura()

dim ca as string = "lop"
ca.toestructura()

etc...etc...

[D4N93R]

Hola, a los tipos de datos (clases) del framework, directamente no lo podras hacer. Pero puedes crear una clase tuya la cual herede de una de esas clases, si es que no son sealed, es decir selladas, luego le crearias un método adicional con la funcionalidad que tu quieres.

Si no me equivoco, esto se podrá hacer en el framework 4.0, es decir agregarle miembros a clases ya definidas, pero no me creas jejej

Un saludo!

Baaaw Oic

Si en realidad lo que busco es  saber como se hace....

raul338

Código (csharp) [Seleccionar]

int.Parse(string); // Funciona con todos los tipos
int.TryParse(string); // Aunque no se crea, a veces tira error :P

Código (vbnet) [Seleccionar]

Dim s As String = "45665"
Dim i As Double = Double.Parse(s)


en C# tambien tenes

string s = "54";
int i = s as int;

Eso es en las clases base del framework

En el .net framework 3.0 (que yo sepa, x ahi es en 4) tenes los "metodos extensores" en el que vos podes agregar metodos a clases ya creadas

Métodos extensores en C#

Y de ultima tenes boxing y unboxing aunque es considerado mala practica (hasta donde se)

C#
Código (csharp) [Seleccionar]

// boxing
int i = 24;
object o = i;
///.........
// unboxing
int i = o; // En el caso de que "o" no fuera int tira error


Y si queres para tus propias clases o estructuras, eso ya tenes que implementarlo vos, crearte tu propio ToString(), ToLoQueSea();

MANULOMM

Extension es la respuesta como lo dice Raul...


Aqui dejo un par de videos con la explicación del tema.

Parte 1 (5 min)
http://www.screencast.com/users/JuanM_L/folders/Jing/media/5c930b22-3e75-4557-bd88-105788a4b7b2

Parte 2 (5 min)
http://www.screencast.com/users/JuanM_L/folders/Jing/media/225c8ceb-7d2f-4f3e-930d-75114a0127f8

Atentamente,

Juan Manuel Lombana
Medellín - Colombia


[D4N93R]