membro de acesso segundo progenitor (herança)
-
13-09-2019 - |
Pergunta
Aqui está o meu layout atual: (a questão é o comentário)
class A
{
int foo;
}
class B : A {}
class C : B
{
void bar()
{
//I want to access foo
base.foo; // Doesn't work
base.base.foo // Doesn't work, of course
}
}
Como você pode ver, eu não posso acessar membros A
usando base
em C. Como eu poderia acessá-lo? Thanks:)
Solução
Se você fizer foo protegido,
class A
{
protected int foo;
}
, em seguida, uma base simples irá fazer:
void bar()
{
//I want to access foo
base.foo; // will work now
// base.base.foo // Doesn't work, of course
}
Mas seria melhor construir uma propriedade (protegida) em torno foo:
class A
{
private int _foo;
protected int Foo
{
get { return _foo; }
set { _foo = value; }
}
}
Outras dicas
O campo em um é declarado privado. Deve ser protegido por classes derivadas para acessá-lo.
pública colocar na frente de int foo;
class A
{
public int foo;
}
class B : A {}
class C : B
{
void bar()
{
//I want to access foo
base.foo; // Now you can see it
}
}
Por padrão, a menos que você especifique o contrário todos os membros são privados.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow