Casa Sviluppo Che cos'è un attributo condizionale in c? - definizione da techopedia

Che cos'è un attributo condizionale in c? - definizione da techopedia

Sommario:

Anonim

Definizione - Cosa significa attributo condizionale?

Un attributo condizionale è un tag utilizzato per contrassegnare un metodo o una classe la cui esecuzione dipende dalla definizione dell'identificatore di preelaborazione.


Un attributo condizionale indica una condizione per specificare la compilazione condizionale in cui i metodi vengono chiamati selettivamente sulla base della definizione di simboli. Indica al compilatore di compilare (in Microsoft Intermediate Language) o di non compilare specifici blocchi di codice, in base a una condizione, indipendentemente dal fatto che sia definito o meno un simbolo di compilazione condizionale specifico. Se non sono stati definiti simboli specifici nel momento in cui vengono chiamati, le compilazioni verranno ignorate dal compilatore.

Techopedia spiega l'attributo condizionale

Un attributo condizionale ha le seguenti caratteristiche:

  • Può essere applicato a metodi e classi, ma solo se derivano da un attributo.
  • Durante l'applicazione dell'attributo condizionale a una classe, la classe dell'attributo verrà emessa nei metadati solo se viene definito il simbolo di compilazione condizionale.
  • Prende un parametro, che è il simbolo identificativo che controlla la compilazione.
  • Gli argomenti passati a un metodo condizionale o a una classe di attributi verranno verificati dal compilatore.
  • È completamente curato dal compilatore e non dal tempo di esecuzione.
  • Non può essere applicato a un metodo utilizzato in un'espressione di creazione delegata.
  • Non influisce sul codice generato per il metodo condizionale, ma influisce sulla chiamata al metodo.

Un attributo condizionale fornisce un modello di programmazione dichiarativo e aiuta a mantenere facilmente il codice sorgente. Applicando un attributo condizionale a livello di metodo, il codice sorgente è più leggibile. Il chiamante di un metodo non ha bisogno di prendere un codice aggiuntivo per la compilazione condizionale. Un attributo condizionale viene utilizzato per abilitare le funzionalità di traccia e registrazione nelle build di debug utilizzando l'identificatore DEBUG per visualizzare e registrare le informazioni diagnostiche relative all'applicazione. Inoltre, aiuta a separare la logica relativa alla build di debug (nei sistemi utilizzati per lo sviluppo) dalle build di rilascio, che vengono distribuite in siti e applicazioni. Per mantenere più edizioni (con funzionalità selezionate in qualche edizione) di un software senza duplicazione del codice, la compilazione condizionale costituisce la tecnica giusta con la quale viene mantenuto il singolo codice sorgente principale per più edizioni in base ai rispettivi simboli definiti per loro.


Di seguito sono riportate alcune regole da seguire durante l'utilizzo di un attributo condizionale:

  • Un metodo condizionale all'interno di una dichiarazione di classe o struct deve avere un tipo restituito come nullo.
  • Mentre si utilizzano più identificativi come attributi condizionali, l'inclusione dei metodi si basa sul risultato di OR logico o AND logico sui simboli definiti.
  • Non può essere specificato su un metodo in una dichiarazione di interfaccia.
  • Un metodo condizionale non può essere preceduto dalla parola chiave "override", ma può essere virtuale. Se sottoposto a override, viene considerato implicitamente un condizionale.
  • I simboli considerati per la compilazione condizionale possono essere definiti come opzioni della riga di comando del compilatore o come variabili di ambiente dalla shell del sistema operativo o come pragmi (utilizzando la direttiva del preprocessore "#define") nel codice sorgente.
  • A differenza di C ++, la definizione di simboli in C # può essere in qualsiasi ordine e quindi l'ordinamento tra "#define" e un metodo condizionale deve essere impostato correttamente.

Sebbene l'uso di "#if e #endif" costituisca un'opzione alternativa all'attributo condizionale, quest'ultimo fornisce un approccio più pulito, elegante e meno soggetto a errori rispetto al primo. Internamente, la differenza è che mentre si utilizza un attributo condizionale per un metodo, il metodo farà comunque parte dell'assembly e non verrà caricato. Ma nel caso di #if / #endif, il metodo non sarà visibile nell'assieme stesso.

Questa definizione è stata scritta nel contesto di C #
Che cos'è un attributo condizionale in c? - definizione da techopedia