Dica - Tornando um código obsoleto em .NET - C# Brasil


Dica – Tornando um código obsoleto em .NET

{lang: 'pt-BR'}

Já ocorreu de precisarmos criar uma classe conteúdo algumas funcionalidades básicas mais usadas e algumas dessas deixaram de ser úteis ou sofreram algum tipo de evolução. OK, mais e as aplicações que utiliza essa nossa classe, como identificar?

Em .NET existe o atributo Obsolete, que pode marcar em nossa classe se ele é um código obsoleto e até mesmo impedir que ele seja compilado.

Segue abaixo como utiliza-lo


[Obsolete("Utilize o método PesquisarCliente()")]
public DataSet ListarClientes()
{
// Aqui vai o codigo antigo

return new DataSet();
}

public DataSet PesquisarClientes()
{
// Aqui vai o codigo novo

return new DataSet();
}

No caso acima, se utilizarmos o método ListarClientes() seremos avisado de que o método é obsoleto e que poderemos utilizar o método PesquisarClientes() como alternativa.

Mais e se caso eu queira forçar a substituição do método pelo programador? Segue abaixo.


[Obsolete("Utilize o método PesquisarCliente()", true)]
public DataSet ListarClientes()
{
// Aqui vai o codigo antigo

return new DataSet();
}

public DataSet PesquisarClientes()
{
// Aqui vai o codigo novo

return new DataSet();
}

Se observar bem, verá que foi informado um novo parâmetro no atributo Obsolete. Informamos true para que seja exibido erro quando for utilizado o nosso método antigo ou até mesmo onde já esteja utilizando.

Esse atributo é ideal para nossas métodos que não sofreram evolução e necessitam ser substituidas.

Fica ai a dica.

Abraço e sucesso!

Postado em C#, Dicas, Visual Studio | Marcado como , , , , ,

3 respostas para “Dica – Tornando um código obsoleto em .NET”

  1. Paulo Patto disse:

    Olá boa tarde.

    Não é um tanto radical forçar o cara a substituis, assim e se eu já tenho um código compilado ele dixa de funcionar? Caso a reposta seja falsa, desconsiderem o minha opinião de radical.

  2. Sim, é um pouco radical dependendo do ponto de vista. Mais no exemplo que você deu de uma aplicação já estar compilada ira gerar erro. Mais a dica é boa em casos que precisamos substituir um método antigo e obsoleto por um novo que seja mais eficaz por exemplo.

  3. Guilherme disse:

    Opa,
    a tecnica de se usar Código Obsoleto (sem o disparamento de erro na compilação) é muito usada pela propria Microsoft.

    Exemplo:
    Na versão 1.0 de alguma classe em o método TESTE();
    Na versão 2.0 esse método foi trocado pelo TESTE2(), mas, o TESTE() ainda funciona e está como Obsoleto e indicando para usar o Novo.
    Na versão 3.0 já não existe o método TESTE().

    Adotei a algum tempo essa técnica e estou tendo bons resultados com meus componentes.

    Parabens!

Deixe uma resposta