• Domingo 17 de Noviembre de 2024, 23:36

Autor Tema:  Propiedades  (Leído 1908 veces)

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Propiedades
« en: Viernes 13 de Julio de 2007, 03:18 »
0
Hola, tengo una duda con respecto a las propiedades. Por ej. con este codigo.

Código: Text
  1. class TimePeriod
  2. {
  3.     private double seconds;
  4.  
  5.     public double Hours
  6.     {
  7.         get { return seconds / 3600; }
  8.         set { seconds = value * 3600; }
  9.     }
  10. }
  11.  
  12. class Program
  13. {
  14.     static void Main()
  15.     {
  16.         TimePeriod t = new TimePeriod();
  17.  
  18.         // Assigning the Hours property causes the 'set' accessor to be called.
  19.         t.Hours = 24;
  20.  
  21.         // Evaluating the Hours property causes the 'get' accessor to be called.
  22.         System.Console.WriteLine("Time in hours: " + t.Hours);
  23.     }
  24. }
  25.  

Esta definicion la encontre en internet.

Citar
Se puede controlar si una propiedad es de lectura y escritura, de sólo lectura o de sólo escritura según el método, Get o Set, que se incluya.

En el ejemplo anterior es de lectura/escritura, pero como seria el mismo ejemplo para que sea de lectura solo y otro de escritura?

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Propiedades
« Respuesta #1 en: Viernes 13 de Julio de 2007, 05:50 »
0
Pues si no estoy mal puedes declararlas como 'solo lectura'  :rolleyes:


en caso de que la uses como 'campo/varibable'
Código: Text
  1. public readonly double Hours
  2.  

si lo haces de esta manera solo se puede modificar en el constructor al crear la instancia  creo que ya no se puede modificar :unsure:

ahora hay otra manera para que sea 'solo lectura' siendo propiedad
omitiendo la 'seccion'  set

Código: Text
  1.     public double Hours
  2.    {
  3.        get { return seconds / 3600; }
  4.        //set { seconds = value * 3600; }
  5.    }
  6.  

Espero, no haberme equivocado :P

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Propiedades
« Respuesta #2 en: Viernes 13 de Julio de 2007, 14:29 »
0
en el caso que sea de solo escritura,  como este caso:
Código: Text
  1.    public double Hours
  2.   {
  3.       //get { return seconds / 3600; }
  4.       set { seconds = value * 3600; }
  5.   }
  6.  
Que funcion cumple el tipo double de " public double Hours"?

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Propiedades
« Respuesta #3 en: Viernes 13 de Julio de 2007, 17:25 »
0
Disculpa, yo no soy muy conocedor de C# lo conozco poco, y debe ser necesario que venga alguien experto

Pero tu pregunta es confusa,

no creo preguntes la razon por la cual es double, asi qu supongo que tu pregunta tiene trasfondo diferente....

Pero dime...

¿Hay alguna otra forma en C# de declarar una variable, constante,propiedad, metodo u objeto sin especificar el tipo de dato?

Insto, espero algun experto te ayude, y yo sinceramente no entiendo la pregunta :P

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Propiedades
« Respuesta #4 en: Viernes 13 de Julio de 2007, 18:04 »
0
puede ser que sea asi:
En el caso de que la propiedad sea de solo escritura, el double indica el tipo de dato que es value. En el caso de que sea de solo lectura indica el return?

x_reaccion

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re: Propiedades
« Respuesta #5 en: Domingo 15 de Julio de 2007, 10:16 »
0
Citar
puede ser que sea asi:
En el caso de que la propiedad sea de solo escritura, el double indica el tipo de dato que es value. En el caso de que sea de solo lectura indica el return?

Exacto. Ya sea de lectura, escritura o escritura y lectura el tipo de dato que entrara(set) o saldra(get) de la propiedad es Double a menos que lo cambies obvio.
u.u no quiero cumplir 20 T_T

mx_latino

  • Miembro activo
  • **
  • Mensajes: 91
  • Nacionalidad: ec
    • Ver Perfil
Re: Propiedades
« Respuesta #6 en: Martes 17 de Julio de 2007, 18:35 »
0
Cita de: "AnioN"
en el caso que sea de solo escritura,  como este caso:
Código: Text
  1.    public double Hours
  2.   {
  3.       //get { return seconds / 3600; }
  4.       set { seconds = value * 3600; }
  5.   }
  6.  
Que funcion cumple el tipo double de " public double Hours"?
No te equivocas
Solo tapas el get o set en la Clase y lo consigues..!!
 :ph34r: