base: Usado para permitir o acesso a membros públicos ou protegidos da classe base em classes derivadas, mas apenas em construtores, métodos de instância e acessores de propriedades de instância. Características específicas do resumo no MSDN incluem: (1) Chame um método que tenha sido sobrescrito por outros métodos na classe base. (2) Especifique o construtor de classe base que deve ser chamado ao criar uma instância de classe derivada. Base é comumente usado para se comunicar com a classe base quando o objeto de classe derivada é inicializado. A base pode acessar membros públicos e protegidos da classe base, e membros privados não são acessíveis. Na herança multicamada, existem duas situações em que a base pode apontar para a classe pai: primeiro, quando há sobrecarga, a base apontará para o método do membro da classe pai que herda diretamente; Na ausência de sobrecarga, a base pode indicar um método público ou protegido de qualquer pai ou mãe.
this: A instância atual usada para referenciar a classe, também métodos herdados, geralmente pode esconder isso. Os recursos resumidos no MSDN incluem principalmente:
(1) Membros do limite que estão ocultos por nomes semelhantes (2) Passar o objeto como parâmetro para outros métodos (3) Indexador de declarações Isso se refere ao próprio objeto de classe, que é usado para acessar todas as constantes, campos, atributos e membros de método da classe, independentemente do nível de acesso do elemento de acesso. Como isso é limitado apenas ao interior do objeto e não pode ser visto fora dele, essa é a ideia básica disso. Além disso, elementos estáticos não fazem parte do objeto, então isso não pode ser referenciado em métodos estáticos.
Regras gerais:
1. Use a base e isso o mínimo possível. Além de evitar conflitos entre nomes de subclasses e chamar outros construtores em um mesmo construtor, o uso de base e isso pode levar a resultados indesejados. 2. O uso de base e isso em elementos estáticos não é permitido. A razão é que base e this acessam ambas as instâncias de classes, ou seja, objetos, enquanto membros estáticos só podem ser acessados por classes, não por objetos. 3. A base é projetada para alcançar polimorfismo. 4. Use as palavras-chave esta ou base para especificar apenas um construtor, o que significa que este e base não podem ser aplicados a um construtor ao mesmo tempo. 5. Em termos simples, base é usada para acessar os membros da classe base reescritos na classe derivada; Isso é usado para acessar membros dessa categoria, claro, incluindo propriedade pública herdada e membros protegidos. 6. Além da base, outra forma de acessar membros da classe base é converter o tipo exibido. É só que o método não pode ser estático. |