SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: AnioN en Viernes 13 de Julio de 2007, 03:18

Título: Propiedades
Publicado por: AnioN en Viernes 13 de Julio de 2007, 03:18
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?
Título: Re: Propiedades
Publicado por: F_Tanori en Viernes 13 de Julio de 2007, 05:50
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
Título: Re: Propiedades
Publicado por: AnioN en Viernes 13 de Julio de 2007, 14:29
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"?
Título: Re: Propiedades
Publicado por: F_Tanori en Viernes 13 de Julio de 2007, 17:25
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
Título: Re: Propiedades
Publicado por: AnioN en Viernes 13 de Julio de 2007, 18:04
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?
Título: Re: Propiedades
Publicado por: x_reaccion en Domingo 15 de Julio de 2007, 10:16
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.
Título: Re: Propiedades
Publicado por: mx_latino en Martes 17 de Julio de 2007, 18:35
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: