SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => VB .NET => Mensaje iniciado por: ElNapster en Lunes 19 de Marzo de 2007, 18:22

Título: Funcion Como Private
Publicado por: ElNapster en Lunes 19 de Marzo de 2007, 18:22
:mellow: que tal... tengo una duda... como hago referencia a una funcion Private ? para yo utilizarla en mi aplicacion ?  :unsure:

Gracias  :P
Título: Re: Funcion Como Private
Publicado por: Mollense en Lunes 19 de Marzo de 2007, 18:29
Buenas...

No trabajo con VB.NET pero supongo que la filosofía del paradigma OO se respeta y por lo tanto una función privada solamente es accesible por los métodos (funciones) de la misma clase.-

 :hola:
Título: Re: Funcion Como Private
Publicado por: ElNapster en Lunes 19 de Marzo de 2007, 18:37
Por decirte tengo una funcion declarada asi

Código: Text
  1. Private Function Nombre (byval var1 as integer , byval var2 as integer) as integer
  2.      dim var3 as integer
  3.      nombre= var1+var2
  4. end funtion
  5.  

y en donde la trato de usar segun lo que dices del paradigma de la OO
tendria que ser

Dim var as nombre ?
 <_<  no me deja ....
o como seria ?
Título: Re: Funcion Como Private
Publicado por: Mollense en Lunes 19 de Marzo de 2007, 20:12
Bueno, seguro que voy a meter la pata pero en fin...

Antes que nada, las funciones no se instancian, se usan. Lo que se instancia es la clase, de esta forma se obtiene un objeto que poseerá los atributos (Variables, constantes, etc) y los métodos (funciones) que se definieron en la clase.-

Si tuvieses por ejemplo una clase circunferencia-.

(Está en C# pero para que veas lo que digo es lo mismo)
Código: Text
  1. class Circunferencia{
  2.         public Circunferencia(double radio){
  3.             this.radio = radio;
  4.         }
  5.  
  6.         private double radio;
  7.         const double PI = 3.1415926;
  8.  
  9.         private double calcularPerimetro(){
  10.                 return 2 * PI * this.radio;
  11.         }
  12.  
  13.         public double Radio{
  14.             get{
  15.                 return this.radio;
  16.             }
  17.             set{
  18.                 this.radio = value;
  19.             }
  20.         }
  21.  
  22.         public double Perimetro{
  23.             get{
  24.                 return calcularPerimetro();//Fijate como se llama a la función privada
  25.             }
  26.         }
  27.  
  28.         public double Area{
  29.             get{
  30.                 return PI * Math.Pow(this.radio, 2);
  31.             }
  32.         }
  33.     }
  34.  

La usarías así:
Código: Text
  1. class CircunsferenciaApp{
  2.         static void Main(){
  3.  
  4.             Circunferencia c = new Circunferencia(4);//Instanciamos un objeto de la clase Circunferencia
  5.             //Luego usamos lo que está accesible (Todo lo public en este caso) en objeto (Atributos, funciones, etc)
  6.            
  7.             //Esto está bien...
  8.             Console.WriteLine(&#34;El radio de la circunferencia es {0}&#34;, c.Radio);
  9.             Console.WriteLine(&#34;El perímetro de la circunferencia es {0}&#34;, c.Perimetro);
  10.             Console.WriteLine(&#34;El área de la circunferencia es {0}&#34;, c.Area);
  11.             Console.WriteLine(&#34;Pulsa INTRO para incrementar el Radio en 1&#34;);
  12.             string a = Console.ReadLine();
  13.  
  14.             c.Radio++; //Esto está bien...
  15.             Console.WriteLine(&#34;El radio de la circunferencia es {0}&#34;, c.Radio); //Esto está bien...
  16.             Console.WriteLine(&#34;El perímetro de la circunferencia es {0}&#34;, c.calcularPerimetro); //Esto está mal (El método calcularPerimetro es privado y solo puede utilizarce desde las funciones miembro de la misma clase ...
  17.             Console.WriteLine(&#34;El área de la circunferencia es {0}&#34;, c.Area); //Esto está bien...
  18.             a = Console.ReadLine();
  19.  
  20.         }
  21.     }
  22.  

Espero que se entienda lo que quiero decir

Saludos :comp:
Título: Re: Funcion Como Private
Publicado por: Cajami en Lunes 19 de Marzo de 2007, 20:18
Cita de: "elnapster"
Por decirte tengo una funcion declarada asi

Código: Text
  1. Private Function Nombre (byval var1 as integer , byval var2 as integer) as integer
  2.      dim var3 as integer
  3.      nombre= var1+var2
  4. end funtion
  5.  

y en donde la trato de usar segun lo que dices del paradigma de la OO
tendria que ser

Dim var as nombre ?
 <_<  no me deja ....
o como seria ?
hola, que io sepa no se puede declarar una variable del tipo de una funcion, que tal si pruebas asi:


Código: Text
  1. Private Function Nombre (byval var1 as integer , byval var2 as integer) as integer
  2.     dim var3 as integer
  3.     nombre= var1+var2
  4. end funtion
  5.  
  6. Dim Variable As Integer
  7. Variable = Nombre (15,16)
  8.  
Título: Re: Funcion Como Private
Publicado por: ElNapster en Lunes 19 de Marzo de 2007, 21:22
Citar
hola, que io sepa no se puede declarar una variable del tipo de una funcion, que tal si pruebas asi:



CODE 
Private Function Nombre (byval var1 as integer , byval var2 as integer) as integer
   dim var3 as integer
   nombre= var1+var2
end funtion

Dim Variable As Integer
Variable = Nombre (15,16)



Nop solo me muestra las funciones que son de tipo Public ..... :(
Título: Re: Funcion Como Private
Publicado por: lencho en Miércoles 21 de Marzo de 2007, 12:39
aun si instancias un objeto de una clase, si la clase tiene atributos privados, nos los podras ver, ya que son PRIVADOS, y solo podras ver los que son PUBLICOS.

BYTE.