compreensão dos métodos abstratos estáticos em C#
Métodos estáticos abstratos em C# são um recurso que aumenta a curiosidade entre os desenvolvedores. Enquanto trabalha com provedores, pode -se encontrar um cenário em que desejam criar uma classe abstrata com um método estático abstrato. Explorar as razões por trás da ausência desse recurso fornece um entendimento mais claro. Instanciação do objeto a ser acessada. Eles são invocados através do nome da classe, e não através de uma referência de objeto. O código da linguagem intermediária (IL) gerado para chamadas de método estático nomeia diretamente a classe que define o método, independentemente da classe de chamada. Ilustre isso, considere o seguinte código:
public Classe A { Teste de vazio estático público () { } } Classe Pública B: A { } programa de classe { estático void main (string [] args) { B.test (); } } Apesar de chamar o método através da classe B, o código IL real gerado se assemelha a isto:
. .MaxStack 8 L0000: NOP L0001: ligue para void consolication1.a :: test () L0006: NOP L0007: RET
Observe que a chamada é feita para o A.Test, mesmo que o código -fonte usado B.Test. Isso demonstra que a chamada do método estático é resolvida no tempo de compilação com base na classe que define o método, não a classe de chamada. Os métodos permitem o comportamento polimórfico, permitindo diferentes implementações do mesmo método em classes derivadas. No entanto, as chamadas estáticas não são virtuais no .NET, pois direcionam diretamente um método específico com base no nome da classe. Portanto, métodos estáticos virtuais ou abstratos não serviriam a um propósito prático em c#. Sem polimorfismo, o conceito de métodos estáticos abstratos não possui um caso de uso significativo. Portanto, não é suportado pelo idioma.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3