Comunidad Gambas-es
[SOLUCIONADO] Heredar String - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: Controles/Librerías/Componentes (https://gambas-es.org/forum-7.html)
+--- Tema: [SOLUCIONADO] Heredar String (/thread-326.html)



Heredar String - tincho - 07-04-2021

Hola a todos.

Suponiendo la clase String2 que extiende String tenemos que para heredar la clase String basta con poner en la clase "nueva" la instrucción Inherits String.
Pero luego al crear una variable String2 con la nueva clase es necesario poner el modificador "As New" en vez de solo "As".
Alguna idea de como hacer que las variables de la clase String2 no tengan que definirse como "As New" ??
Saludos.


RE: Heredar String - guizans - 08-04-2021

Hola.

No se si es lo que buscas, pero si en el inicio de la clase String2 la declaras estática con:
Código:
 
Creatic Static  

eso significa que puedes llamar a la clase directamente con la anotación punto sin tener que declarar una variable, string2.loquesea

Un saludo.


RE: Heredar String - vuott - 10-04-2021

(08-04-2021, 22:29)guizans escribió: sin tener que declarar una variable

En efecto, al usar la palabra-llave "New", nosotros creamos un "instancia", un "Objeto" de la Clase. Así podemos crear varios Objetos de esa Clase, que gestionamos en forma de variables.
Al hacer estática la Clase con "Static", la reducimos a una especie de Módulo que hace imposible la creación de Objetos individuales (las variables) de esa Clase.


RE: Heredar String - tincho - 11-04-2021

Gracias a ambos.
Finalmente resolví el asunto de la siguiente manera:
Lo que intento hacer es agregar algunas funciones a la clase nativa String de gambas, que según me explico Benoîte es algo diferente a las otras clases de gambas.
No deseo usar String2 como nombre sino String y eso no era compatible con el uso de Inherits String porque salta el error de que la clase no puede heredarse a si misma.
Luego el uso de Create Static tampoco funcionaba.
Solucion: Crear una clase dentro del proyecto llamada String y dentro de ella:
Código:
Export
Static Public Function UnaFuncionPersonalizada(s As String) As String
  'Algo que hace la funcion
End
Esta forma agrega la función UnaFuncionPersonalizada a la clase nativa String.
Saludos.


RE: Heredar String - vuott - 12-04-2021

Bravo, tincho !  Shy


RE: Heredar String - tincho - 12-04-2021

(12-04-2021, 20:07)vuott escribió: Bravo, tincho !  Shy

Gracias Vuott.