Autor |
Mensaje |
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
¿ Parámetro Opcional Es Igual A Por Defecto ? [No Solucionado]
Buenos días!.
Tengo una clase donde por defecto en el constructor se le asigna un valor a algunas de sus propiedades si no se le da ninguno.
Para ellos use optional.
En el ejemplo uso dos clases. Una es figura 2d y la otra figura 3d.
En la clase figura 2d, entiendo que si no se le pasa argumentos al
constructor, por defecto ambas propiedades (ancho y alto) son igual a 10.
En el caso de Figura3D que hereda de Figura2D solo he añadido la propiedad profundidad.
En el Main:
Bien ahora surge un problema. Yo solo quiero cambiar la propiedad profundidad!.
Pero....
Citar:
Ancho del cubo: 30
Alto del cubo: 10
Profundidad del cubo: 10
¿ Hacerlo con una colección ?.
¿ Es mejor hacer uso de Not en el constructor ?
Si busco en la ayuda de gambas, Not numero, calcula el not lógico de un número en binario.
De 0, -1 como es normal.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Sabado, 22 Julio 2017, 13:40; editado 2 veces
|
#1 Viernes, 21 Julio 2017, 08:26 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: ¿ Parámetro Opcional Es Igual A Por Defecto ?
Shell:
Has probado la funcion isnull(..),. osea
En vez de:
poner
Para valores "por defecto", yo he hecho siempre eso...
última edición por jsbsan el Viernes, 21 Julio 2017, 12:38; editado 1 vez
|
#2 Viernes, 21 Julio 2017, 12:37 |
|
|
Guizans
Aprendiz
Registrado: Febrero 2012
Mensajes: 99
Edad: 45
|
Re: ¿ Parámetro Opcional Es Igual A Por Defecto ?
A lo mejor meto la gamba pero yo cuando tengo un parámetro opcional tanto en un constructor como en un método lo que hago es esto:
Así, si no le paso ningún parámetro entonces la variable "parametro" vale 10 y si le paso un valor, pues coge el valor pasado.
Un saludo.
|
#3 Viernes, 21 Julio 2017, 17:19 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: ¿ Parámetro Opcional Es Igual A Por Defecto ?
Guizans:
Citar: public sub _new(Optional parametro as Integer = 10)
end
Muy bueno, no conocía esa forma.
|
#4 Viernes, 21 Julio 2017, 17:25 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: ¿ Parámetro Opcional Es Igual A Por Defecto ?
Guizans:
Citar: public sub _new(Optional parametro as Integer = 10)
end
Muy bueno, no conocía esa forma.
Esa es la forma correcta!!
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#5 Viernes, 21 Julio 2017, 18:08 |
|
|
Guizans
Aprendiz
Registrado: Febrero 2012
Mensajes: 99
Edad: 45
|
Re: ¿ Parámetro Opcional Es Igual A Por Defecto ?
Encantado de haber sido útil.
Un saludo.
|
#6 Viernes, 21 Julio 2017, 19:55 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: ¿ Parámetro Opcional Es Igual A Por Defecto ?
Buenas!.
Efectivamente la forma correcta es la que ha mostrado Guizan.
No es que dejara de conocerla, me lié más con pasar el argumento concreto.
Me extrañó el tener que usar condicionales.
El problema que encuentro aun, es el querer pasar un argumento concreto, no todos los argumentos.
Puede que esto necesite siempre un orden.
Creo que la solución puede ser pasando una colección al constructor. No veo otra forma.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#7 Sabado, 22 Julio 2017, 00:09 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: ¿ Parámetro Opcional Es Igual A Por Defecto ?
Shell:
Citar: El problema que encuentro aun, es el querer pasar un argumento concreto, no todos los argumentos.
Puede que esto necesite siempre un orden.
Si, efectivamente, tienes que ponerlo en el orden que tenga definido, dejando los otros sin poner ningún valor.
Por ejemplo:
Tenemos la funcion:
Si quieres ponerle solo el dato del ancho (2º parámetro), seria asi:
volumen(,23,)
Con eso calcularía:
alto=1 (valor por defecto)
ancho=23 (el que pones en la función)
largo =1 (calor por defecto)
Saludos
|
#8 Sabado, 22 Julio 2017, 12:07 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: ¿ Parámetro Opcional Es Igual A Por Defecto ?
Muy interesante, yo lo hacia de otra manera, pero esta es mas práctica, incluso se pueden asignar variables a las varables.
Saludos.
|
#9 Sabado, 22 Julio 2017, 12:59 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: ¿ Parámetro Opcional Es Igual A Por Defecto ?
Julio:
Vaya, muchas gracias, por fin!.
Entre los parámetros opcionales y las comas bien que me lié.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#10 Sabado, 22 Julio 2017, 13:24 |
|
|
|