Duda sobre el uso de propiedades

17/06/2006 - 12:42 por Tito | Informe spam
Hola todos.

En el siguiente codigo:

public class Cliente {
public string _NombreCliente;
public string NombreCliente {
get { return _NombreCliente;}
set { _NombreCliente = value;}
}
}


Duda: Cual seria la necesidad de usar una propiedad ? No podria usarse el
field _NombreCliente directamente ? Cuales son las razones para ello ?

Preguntas similare

Leer las respuestas

#6 Eduardo A. Morcillo [MS MVP VB]
19/06/2006 - 19:32 | Informe spam
Se refiere ( espero ;) ) a que no tiene sentido tener un campo
publico :



A eso me referia. Los campos (o sea las variables) no deberian ser publicos
cuando usas una propiedad para acceder a ellos.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#7 Tito
19/06/2006 - 20:26 | Informe spam
Ok, pero en el caso del ejemplo el campo es publico. Si se puede es que la
sintaxis lo permite, no ?.

En ese caso en particular entonces, no es necesaria la propiedad, o si ?






"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:
Se refiere ( espero ;) ) a que no tiene sentido tener un campo
publico :



A eso me referia. Los campos (o sea las variables) no deberian ser
publicos cuando usas una propiedad para acceder a ellos.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C

Respuesta Responder a este mensaje
#8 Eduardo A. Morcillo [MS MVP VB]
19/06/2006 - 21:33 | Informe spam
Ok, pero en el caso del ejemplo el campo es publico. Si se puede es
que la sintaxis lo permite, no ?.



Que se pueda hacer no significa que sea correcto. Como ya lo dijo
Vyacheslav: "Es más seguro a la vista de posibles variaciones, protección y
ocultamiento.". La propiedad te permite ejecutar codigo cuando se le asigna
un valor, lo que permite realizar chequeos o acciones relacionadas con el
cambio. Un campo no te permite eso. Si ambos son publicos estas dando al
posibilidad al que usa la clase de saltarse ese codigo que ejecuta la
propiedad al asignar directamente al campo.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#9 Octavio Hernandez
20/06/2006 - 09:45 | Informe spam
Perdón, se me fue un public donde debía ser private. Las desventajas de
copiar y pegar...

public class Cliente {
// campo privado
private string _NombreCliente; // AQUI
// propiedad pública
public string NombreCliente {
// etc

Slds - Octavio


"Octavio Hernandez" escribió en el mensaje
news:%
Tito,

Supón que quisieras garantizar el cumplimiento de cierta "regla", por
ejemplo que el nombre de los clientes siempre esté en mayúsculas.
Si tus "usuarios" utilizaran el campo directamente, no habría manera de
garantizarlo. Mediante una propiedad, puedes hacer:

public class Cliente {
// campo privado
public string _NombreCliente;
// propiedad pública
public string NombreCliente {
get { return _NombreCliente; }
set { _NombreCliente = value.ToUpper(); }
}
}

Slds - Octavio



"Tito" escribió en el mensaje
news:
Hola todos.

En el siguiente codigo:

public class Cliente {
public string _NombreCliente;
public string NombreCliente {
get { return _NombreCliente;}
set { _NombreCliente = value;}
}
}


Duda: Cual seria la necesidad de usar una propiedad ? No podria usarse el
field _NombreCliente directamente ? Cuales son las razones para ello ?










email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida