Ocultar una propiedad de una Clase heredada

22/01/2008 - 21:43 por Daniel R. Rossnagel | Informe spam
La idea es evitar que una propiedad quede visible y pueda ser consultada en
una clase que herede de esta.

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
22/01/2008 - 22:27 | Informe spam
"Daniel R. Rossnagel" wrote in message
news:
La idea es evitar que una propiedad quede visible y pueda ser consultada
en una clase que herede de esta.



A ver si lo he entendido: La propiedad está declarada dentro de la clase
madre, y no quieres que sea accesible desde la clase hija? Basta con que
declares la propiedad como "private". De esta forma solo la ve la clase
madre, y nadie más. Lo que no puedes hacer es que la vea todo el mundo (como
si fuera "public") excepto la clase hija.
Respuesta Responder a este mensaje
#2 Daniel R. Rossnagel
23/01/2008 - 03:35 | Informe spam
sorry,
olvide mencionar que la clase madre es System.Windows.Forms.ComboBox, yo
creo una clase a partir de esta en la cual necesito poder ocultar las
propiedades DataSource, ValueMember y DisplayMember para que ninguna clase
que luego herede de la que estoy creando pueda acceder a esta propiedades,
encontre como evitar que se pueda setear nuevos valores o retornar el valor
, pero preferiria que no se visible



"Alberto Poblacion"
escribió en el mensaje de noticias:
"Daniel R. Rossnagel" wrote in message
news:
La idea es evitar que una propiedad quede visible y pueda ser consultada
en una clase que herede de esta.



A ver si lo he entendido: La propiedad está declarada dentro de la clase
madre, y no quieres que sea accesible desde la clase hija? Basta con que
declares la propiedad como "private". De esta forma solo la ve la clase
madre, y nadie más. Lo que no puedes hacer es que la vea todo el mundo
(como si fuera "public") excepto la clase hija.

Respuesta Responder a este mensaje
#3 Pedro Luna Montalvo
23/01/2008 - 04:05 | Informe spam
Un ejemplo:

private new object DataSource{
get {
return base.DataSource;
}
set {
base.DataSource = value;
}
}


Sin embargo, siempre existe la posibilidad de que se asigne la instancia de
la clase heredera al tipo ComboBox, y nuevamente serán visibles estas
propiedades.

Por ejemplo:

class MiComboBox : ComboBox {
private new object DataSource{
get {
return base.DataSource;
}
set {
base.DataSource = value;
}
}
}


MiComboBox miCombo = new MiComboBox ();
miCombo.DataSource = null; // ERROR, propiedad está oculta!!!
((ComboBox) miCombo).DataSource = null; // Esto si es válido!!!

Saludos,
Pedro Luna


"Daniel R. Rossnagel" escribió en el mensaje de
noticias:
sorry,
olvide mencionar que la clase madre es System.Windows.Forms.ComboBox, yo
creo una clase a partir de esta en la cual necesito poder ocultar las
propiedades DataSource, ValueMember y DisplayMember para que ninguna clase
que luego herede de la que estoy creando pueda acceder a esta propiedades,
encontre como evitar que se pueda setear nuevos valores o retornar el
valor , pero preferiria que no se visible



"Alberto Poblacion"
escribió en el mensaje de
noticias:
"Daniel R. Rossnagel" wrote in message
news:
La idea es evitar que una propiedad quede visible y pueda ser consultada
en una clase que herede de esta.



A ver si lo he entendido: La propiedad está declarada dentro de la
clase madre, y no quieres que sea accesible desde la clase hija? Basta
con que declares la propiedad como "private". De esta forma solo la ve la
clase madre, y nadie más. Lo que no puedes hacer es que la vea todo el
mundo (como si fuera "public") excepto la clase hija.

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