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

#1 Vyacheslav Popov
17/06/2006 - 12:56 | Informe spam
Es más seguro a la vista de posibles variaciones, protección y ocultamiento.

public class Cliente {
public string _NombreCliente;
public string NombreCliente {
get { return _NombreCliente;}
set {
if (value == null)
NombreCliente = "sin nombre";
else
_NombreCliente = value;
}
}
}
"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 ?






Respuesta Responder a este mensaje
#2 Eduardo A. Morcillo [MS MVP VB]
17/06/2006 - 16:35 | Informe spam
Y el campo no deberia verse fuera de la clase.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#3 Octavio Hernandez
18/06/2006 - 13:18 | Informe spam
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 ?






Respuesta Responder a este mensaje
#4 Carlos
19/06/2006 - 17:44 | Informe spam
Verse o modificarse ?

Porque con el GET ya se esta viendo ...


"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:
Y el campo no deberia verse fuera de la clase.

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

Respuesta Responder a este mensaje
#5 Carlos Guzmán Álvarez
19/06/2006 - 19:12 | Informe spam
Hola:

Verse o modificarse ?

Porque con el GET ya se esta viendo ...



Se refiere ( espero ;) ) a que no tiene sentido tener un campo publico :

public string _NombreCliente;

Y una propiedad para ese campo ;)

public string NombreCliente {
get { return _NombreCliente;}
set {
if (value == null)
NombreCliente = "sin nombre";
else
_NombreCliente = value;
}
}

El campo deberia ser private:

private string _NombreCliente;
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida