Algumas vezes no desenvolvimento de aplicações é condicionar o uso de determinadas rotinas a um cenário específico. Existem sistemas que mudam completamente o comportamento, de forma controlada, dado o contexto de seu uso. Diante desta necessidade, o C# oferece um recurso bastante interessante chamado de "Atributo condicional". Este artigo abordará seu uso. Inicialmente, veja o exemplo abaixo:

#define TRACE_ON
using System;
using System.Diagnostics;

public class Trace
{
   [Conditional("TRACE_ON")]
   public static void Msg(string msg)
   {
      Console.WriteLine(msg);
   }
}

public class ProgramClass
{
   static void Main()
   {
      Trace.Msg("Now in Main...");
      Console.WriteLine("Done.");
   }
}

No exemplo acima pode-se perceber dois elementos no fonte: #define TRACE_ON e um atribute [Conditional("TRACE_ON")] sob o método Msg. Data a presença deste attribute a mensagem é exebida.

Existem Alguns atributos condicionais padrões que podemo ser usados no desenvolvimento. Um exemplo é o Conditional DEBUG. Este identificador serve para ativar o rastreamento de compilações de depuração. Ele serve para cenário possível no qual um método só deve ser executado em modo de Debug. Veja o exemplo abaixo:

[Conditional("DEBUG")]

static void DebugMethod()
{
}

 

Com este recurso percebe-se que um método marcado como condicional passa por um pré-processamento especificado se sua chamada é incluída ou omitida.

Para saber mais:
Aprofunde seus conhecimentos sobre este tema na comunidade C# (Csharp)

Exibições: 472

Comentar

Você precisa ser um membro de DevBrasil para adicionar comentários!

Entrar em DevBrasil

Comentário de Filipe Araujo em 3 outubro 2012 às 11:20

só para completar, esse atributo só pode ser usado em métodos void.

Comentário de Guilherme Moraes em 2 outubro 2012 às 10:15
Olá Yan, parabéns pelo artigo, só que eu não entendi muito bem o efeito de usar o TRACE_ON. Abs
Comentário de Leandro Rodrigues em 2 setembro 2012 às 23:01

Muito bem colocado, parabéns pelo artigo. 

© 2019   Criado por Ramon Durães.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço