Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > .NET
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-07-2006
radaalvaro radaalvaro is offline
Miembro
 
Registrado: oct 2005
Ubicación: Santa Cruz - Bolivia
Posts: 163
Poder: 19
radaalvaro Va por buen camino
Question dudas sobre clases String e Integer

Saludos mis queridos amigos Delphi-Adictos. 1.Tengo una pequeña duda... Basada en .net Framework 1.1Busque información sobre como poder heredar de la clase String, pero me tope con el inconveniente de que no puede ser heredada, como tampoco se puede usar el class helper con la misma, entonces, la pregunta es...¿Sabe alguien algun truco o modo de Cómo podria aumentarle nuevos metodos a la clase string sin tener que crear una nueva clase y reescribir todo???.2. Trabajando con Delphi .net. puedo ver que cuando uno tiene un variable de tipo TObject (system.Object) tranquilamente uno puede asignarle cualquier clase a la misma sin necesidad de usar un Tipificador (Esto por cuestiones de herencia - Teoria de Objetos). Y pasa lo mismo con la clase Integer ya que si o si necesita Tipificador... alguien sabe por que???Por ejemvarob : system.Object;s: string;L : arrayList;i : integer;BeginOb := s; // Funciona.Ob := L; // Funciona.Ob := i; // NO FUNCIONA.Ob := TObject(i); // FUNCIONA

Última edición por radaalvaro fecha: 27-07-2006 a las 18:18:52. Razón: no se veia bien
Responder Con Cita
  #2  
Antiguo 31-07-2006
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
1. Si la clase esta sellada (sealed o finally en java), no puedes heredarla, ya que justamente para eso existe ese atributo de clase, para evitar lo que quieres lograr.

2. Con respecto a lo segundo: puedes perfectamente asignar un entero a un objeto (al menos en c#). Que error te da el compilador?
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #3  
Antiguo 01-08-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Cita:
Empezado por hector
1. Si la clase esta sellada (sealed o finally en java), no puedes heredarla
Me he quedado intrigado, y la razón de un sellado, al parecer es esta:
Cita:
The sealed modifier is primarily used to prevent unintended derivation, but it also enables certain run-time optimizations. In particular, because a sealed class is known to never have any derived classes, it is possible to transform virtual function member invocations on sealed class instances to nonvirtual invocations.
De hecho lo asemejan con TCustomEdit de la VCL de delphi, que siempre puedes derivar de ese control, en lugar de TEdit.

Discusión original

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 02-08-2006
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile ¿Vamos pa'trás?

¡Hola a todos!

Interesantísimo enlace Lepe.

Mientras algunos soñamos con expandir la POO incluyéndole herencia insertada, otros comienzan a sellar clases .

¿Qué vendrá después? ¿Clases no selladas a cambio de un pago?

Caramba, ¿qué onda con ese atributo?

Un abrazo heredable.

Al González.
Responder Con Cita
  #5  
Antiguo 08-08-2006
radaalvaro radaalvaro is offline
Miembro
 
Registrado: oct 2005
Ubicación: Santa Cruz - Bolivia
Posts: 163
Poder: 19
radaalvaro Va por buen camino
Question Duda 2

Cita:
Empezado por hector
2. Con respecto a lo segundo: puedes perfectamente asignar un entero a un objeto (al menos en c#). Que error te da el compilador?
el error que da Delphi.NET (no Vcl.net) al asignar una variable integer (no system.int32) a una variable tipo TObject ( o system.Object); el error que sale es que dicen que son tipos incompatibles, es necesario usar un comodin. Obj := i; // falla Obj := TObject(i); //FUNCIONA, y la pregunta es POR QUE de esa manera... no que todas las clases heredan de TObject???Saludos.
Responder Con Cita
  #6  
Antiguo 16-08-2006
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
Creo haberlo probado bien en c# y no me dio ningun error. Supongo que el compilador se queja porque el tipo integer (como decimal, bool y los otros tipos de datos primitivos, excepto string) es un tipo de dato de valor (valuetype) mientras que la clase Object define un dato por referencia (referencetypes vs valuetypes), y al parecer el compilador no hace el boxing automaticamente.

De todas formas existe un mecanismo para lograr lo que quieres, y es haciendo la conversion manualmente. Igualmente, es bueno identificar que existen tipos de datos diferentes (por valor y referencia), y que el compilador (el que sea) puede decidir cuando hacer el boxing/unboxing automatico o exigir al programador que lo escriba.
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #7  
Antiguo 24-08-2006
kylix_74 kylix_74 is offline
Registrado
 
Registrado: ago 2006
Ubicación: CD. Juarez, Mexico
Posts: 1
Poder: 0
kylix_74 Va por buen camino
Autoboxing

Hola radaalvaro!

En cuanto al punto dos si existe una forma de decirle al compilador de hacer el boxing automatico.

En tu codigo pon la siguiente directiva de compilacion:

{$AUTOBOX ON}

Asi podras asignar un entero a un objeto sin tener que hacer la conversion manualmente.

De hecho si te fijas en el codigo generado del BDS, normalmente de forma automatica agrega esa directiva a el codigo, debajo de implementation...

Saludos!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
string a Integer Juanito-Kun Varios 4 06-10-2005 12:53:43
Convertir un String a Integer Rafe Varios 2 12-08-2005 17:43:38
¿Como pasar de String a Integer? astur_racing JAVA 5 13-01-2005 18:58:18
de String a Integer!! kye_z Varios 2 20-11-2004 20:04:36
Pasar String a Integer ramonibk Varios 12 09-09-2004 17:20:20


La franja horaria es GMT +2. Ahora son las 00:41:55.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi