Consulta propiedad automática

21/08/2009 - 15:43 por Paula | Informe spam
Hola a todos, tengo dos dudas y aun no pude encontrar la respuesta:

1- Hay alguna posibilidad de definir un valor por defecto para una propiedad
automática ? por ej:

property int Valor {get;set;} -> me gustaría que si nadie le setea un
valor, que por defecto valga 1. Leí por ahi que muchos lo hacen en el
constructor, pero no hay alguna otra forma ? Probé con el atributo
[DefaultValue] pero no funciona.



2- Tengo la propiedad:

public int Cantidad

{

get

{

throw new NotImplementedException();

}

set

{

throw new NotImplementedException();

}

}



Cómo puedo hacer para que cuando hago un set le asigne el valor ? es decir
cómo defini el bloque set sin tenes que definir algo en el bloque get ?



Saludos!!

Preguntas similare

Leer las respuestas

#1 Sashka
21/08/2009 - 16:02 | Informe spam
Creo que no entiendo muy bien lo que quieres, si defines algo en el bloque
set y luego no defines nada en el bloque get, entonces no tienes acceso a la
propiedad.
Por otro lado, el ejemplo que pones no funcionaría nunca, ya que arroja
error en el get y en set.

Si quieres un valor por defecto entonces, define una variable con el valor
por defecto.

int _cantidad = 9;
public int Cantidad

{

get

{

return _cantidad;
}

set

{

_cantidad = value;
}

}


Sashka
"Paula" escribió en el mensaje de
noticias:
Hola a todos, tengo dos dudas y aun no pude encontrar la respuesta:

1- Hay alguna posibilidad de definir un valor por defecto para una
propiedad automática ? por ej:

property int Valor {get;set;} -> me gustaría que si nadie le setea un
valor, que por defecto valga 1. Leí por ahi que muchos lo hacen en el
constructor, pero no hay alguna otra forma ? Probé con el atributo
[DefaultValue] pero no funciona.



2- Tengo la propiedad:

public int Cantidad

{

get

{

throw new NotImplementedException();

}

set

{

throw new NotImplementedException();

}

}



Cómo puedo hacer para que cuando hago un set le asigne el valor ? es decir
cómo defini el bloque set sin tenes que definir algo en el bloque get ?



Saludos!!




Respuesta Responder a este mensaje
#2 Claudio Quezada
21/08/2009 - 16:54 | Informe spam
No se si entendi bien lo que buscas pero te cuento...

Supongamos una variable string

private string _variable = string.Empty;
public string Variable
{
get
{
if (string.IsNullOrEmpty(_variable))
_variable = "VALOR POR DEFECTO";
return _variable
}
set
{
_variable = value;
}
}

No se si sera lo mas correcto pero cuando trabajo con propiedades de
tipo int, long o numeros en general, defino la variable privada en un
valor negativo...

private int_variable = -999;
public int Variable
{
get
{
if (_variable==-999))
_variable = 1;
return _variable
}
set
{
_variable = value;
}
}

de esta manera me aseguro que mi variable sea seteada de manera
automatica solo la primera vez que se utilice

ojala haya entendido lo que querias y mi ejemplo te haya sido de ayuda

saludos.

Paula escribió:
Hola a todos, tengo dos dudas y aun no pude encontrar la respuesta:

1- Hay alguna posibilidad de definir un valor por defecto para una propiedad
automática ? por ej:

property int Valor {get;set;} -> me gustaría que si nadie le setea un
valor, que por defecto valga 1. Leí por ahi que muchos lo hacen en el
constructor, pero no hay alguna otra forma ? Probé con el atributo
[DefaultValue] pero no funciona.



2- Tengo la propiedad:

public int Cantidad

{

get

{

throw new NotImplementedException();

}

set

{

throw new NotImplementedException();

}

}



Cómo puedo hacer para que cuando hago un set le asigne el valor ? es decir
cómo defini el bloque set sin tenes que definir algo en el bloque get ?



Saludos!!




Respuesta Responder a este mensaje
#3 Juan Carlos Paramá
26/08/2009 - 10:11 | Informe spam
Hola,

"Paula" escribió en el mensaje de noticias
news:
Hola a todos, tengo dos dudas y aun no pude encontrar la respuesta:

1- Hay alguna posibilidad de definir un valor por defecto para una
propiedad automática ? por ej:

property int Valor {get;set;} -> me gustaría que si nadie le setea un
valor, que por defecto valga 1. Leí por ahi que muchos lo hacen en el
constructor, pero no hay alguna otra forma ? Probé con el atributo
[DefaultValue] pero no funciona.



No, no hay ninguna. Tienes que definir el valor por defecto en el
constructor. Desde mi
punto de vista en general es mejor opción que establecer un valor por
defecto en la variable
porque te permite controlar totalmente el orden de asignación de los valores
por defecto.

El atributo [DefaultValue] se utiliza para informar a la ventana de
propiedades
de cual es valor por defecto de esa propiedad y de esa forma que al
serializar
el formulario o control solo se guarden las propiedades que han cambiado su
valor. Es un atributo para el diseñador (editor de formularios), no para el
código.




2- Tengo la propiedad:

public int Cantidad

{

get

{

throw new NotImplementedException();

}

set

{

throw new NotImplementedException();

}

}



Cómo puedo hacer para que cuando hago un set le asigne el valor ? es decir
cómo defini el bloque set sin tenes que definir algo en el bloque get ?




Puedes establecer el get como privado y así solo podrás utilizarlo dentro de
la
misma clase o puedes eliminarlo completamente y acceder al valor asignado
(si es necesario)
a través de la variable donde almacenes el valor.


Saludos,

Juan Carlos Paramá
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida