Společné atributy (C# a Visual Basic)
Toto téma popisuje atributy, které se nejčastěji používají v C# a Visual Basic.
Globální atributy
Zastaralé atribut
Atribut Conditional
Atributy volající Info
Atributy jazyka Visual Basic
Globální atributy
Většina atributy se aplikují na specifických prvků jazyka jako třídy nebo metody; Některé atributy jsou však globální, vztahují se na celé sestavení nebo modulu.Například AssemblyVersionAttribute atribut lze vložit informace o verzi do sestavení, například takto:
[assembly: AssemblyVersion("1.0.0.0")]
<Assembly: AssemblyVersion("1.0.0.0")>
Globální atributy se zobrazí ve zdrojovém kódu po libovolné nejvyšší úrovně using směrnic (Imports v jazyce Visual Basic) a před všemi deklaracemi typu, modulu nebo oboru názvů.Globální atributy se mohou objevit v více zdrojových souborů, ale musí být kompilován soubory v jedné kompilace průchodu.Pro projekty jazyka Visual Basic globální atributy budou obecně do souboru AssemblyInfo.vb, který je automaticky vytvořen s Visual Basic projekty.V jazyce C# projekty jsou vloženy v souboru AssemblyInfo.cs.
Atributy sestavení jsou hodnoty, které poskytují informace o sestavení.Jsou rozděleny do následujících kategorií:
Atributy identity sestavení
Informační atributy
Atributy manifestu sestavení
Atributy silného názvu
Atributy identity sestavení
Tři atributy (se silným názvem, popřípadě) zjistit identitu sestavení: název, verze a kultury.Tyto atributy tvoří úplný název sestavení a jsou vyžadovány při odkazu kód.Můžete nastavit sestavení verze a kultura pomocí atributů.Je však nastavena hodnota název kompilátorem, Visual Studio IDE v V dialogovém okně informace o sestavení, nebo na soubor, který obsahuje manifestu sestavení Assembly Linker (program Al.exe) při sestavení.AssemblyFlagsAttribute Atribut určuje, zda mohou společně existovat více kopií sestavení.
V následující tabulce jsou uvedeny atributy identity.
Atribut |
Účel |
---|---|
Popisuje plně identity sestavení. |
|
Určuje verzi sestavení. |
|
Určuje, který podporuje sestavení kultur. |
|
Určuje, zda sestavení podporuje spuštění vedle sebe ve stejném počítači, ve stejném procesu, nebo stejné aplikační domény. |
Informační atributy
Informační atributy lze použít k poskytnutí dodatečných informací o společnosti či produktu danému sestavení.Následující tabulka zobrazuje informační atributy definované v System.Reflection oboru názvů.
Atribut |
Účel |
---|---|
Definuje vlastní atribut, který určuje název produktu manifestu sestavení. |
|
Definuje vlastní atribut, který určuje ochranná známka pro manifestu sestavení. |
|
Definuje vlastní atribut, který určuje verze aplikace informační pro manifestu sestavení. |
|
Definuje vlastní atribut, který určuje název společnosti pro manifestu sestavení. |
|
Definuje vlastní atribut, který určuje autorská práva pro manifestu sestavení. |
|
Nastaví číslo konkrétní verzi použít prostředek systému Win32 soubor verze kompilátoru. |
|
Označuje, zda je kompatibilní s společný jazyk specifikace (CLS) sestavení. |
Atributy manifestu sestavení
Můžete poskytnout informace v manifestu sestavení atributy manifestu sestavení.To zahrnuje název, popis, výchozí alias a konfigurace.Následující tabulka zobrazuje atributy manifestu sestavení definované v System.Reflection oboru názvů.
Atribut |
Účel |
---|---|
Definuje vlastní atribut, který určuje název sestavení manifestu sestavení. |
|
Definuje vlastní atribut, který určuje popis sestavení manifestu sestavení. |
|
Definuje vlastní atribut, který určuje konfiguraci služby sestavení (například prodejní nebo ladění) pro manifestu sestavení. |
|
Určuje popisný výchozí alias pro manifest sestavení |
Atributy silného názvu
V předchozích verzích aplikace Visual Studio pomocí silných názvů podepisování sestavení bylo provedeno s těmito atributy na úrovni sestavení:
To je nadále podporována, ale je preferovaný způsob podepisování sestavení použít Podepisování stránky v Návrháři projektu.Další informace naleznete v tématu Podepisování stránky projektu Designer a Jak: podepsat sestavení (Visual Studio).
Zastaralé atribut
Obsolete Atribut označí program subjekt jako jeden, který je již není vhodné používat.Každé použití entity označena jako zastaralá bude následně generovat upozornění nebo Chyba v závislosti na konfiguraci atributu.Příklad:
<System.Obsolete("use class B")>
Class A
Sub Method()
End Sub
End Class
Class B
<System.Obsolete("use NewMethod", True)>
Sub OldMethod()
End Sub
Sub NewMethod()
End Sub
End Class
[System.Obsolete("use class B")]
class A
{
public void Method() { }
}
class B
{
[System.Obsolete("use NewMethod", true)]
public void OldMethod() { }
public void NewMethod() { }
}
V tomto příkladu Obsolete u atributu class A a metoda B.OldMethod.Protože druhý argument konstruktoru atribut použitý pro B.OldMethod je nastavena na true, tato metoda způsobí chybu kompilátoru, vzhledem k tomu, že použití třídy A bude pouze produkty upozornění.Volání B.NewMethod, vytváří však žádné upozornění nebo chyba.
Zobrazí se řetězec jako první argument konstruktoru atribut jako součást upozornění nebo chyba.Například při použití s předchozí definice, následující kód vygeneruje dva varování a jednu chybu:
' Generates 2 warnings:
' Dim a As New A
' Generate no errors or warnings:
Dim b As New B
b.NewMethod()
' Generates an error, terminating compilation:
' b.OldMethod()
// Generates 2 warnings:
// A a = new A();
// Generate no errors or warnings:
B b = new B();
b.NewMethod();
// Generates an error, terminating compilation:
// b.OldMethod();
Dvě upozornění pro třídu A jsou generovány: jeden pro prohlášení o odkaz na třídu a jeden pro konstruktor třídy.
Obsolete Atribut lze použít bez argumentů, ale zboží včetně vysvětlení, proč je zastaralá a místo použití je doporučeno.
Obsolete Atributu je atribut jedno použití a lze použít jakýkoli subjekt, který umožňuje atributy.Obsoleteje alias ObsoleteAttribute.
Atribut Conditional
Conditional Atribut umožňuje spuštění metody závislé na předzpracování identifikátor.Conditional Je alias pro atribut ConditionalAttributea lze je použít metodu nebo o třídu atributu.
V tomto příkladu Conditional je použita metoda povolení nebo zakázání zobrazení diagnostických informací specifických pro program:
#Const TRACE_ON = True
Imports System
Imports System.Diagnostics
Module TestConditionalAttribute
Public Class Trace
<Conditional("TRACE_ON")>
Public Shared Sub Msg(ByVal msg As String)
Console.WriteLine(msg)
End Sub
End Class
Sub Main()
Trace.Msg("Now in Main...")
Console.WriteLine("Done.")
End Sub
End Module
#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.");
}
}
Pokud TRACE_ON identifikátor není definována, bude zobrazen žádný výstup.
Conditional Atribut je používán DEBUG identifikátor povolit trasování a funkce protokolování ladění, ale není ve verzi sestavení, tímto způsobem:
<Conditional("DEBUG")>
Shared Sub DebugMethod()
End Sub
[Conditional("DEBUG")]
static void DebugMethod()
{
}
Při volání metody označena jako podmíněné přítomnosti nebo nepřítomnosti určeného symbolu předzpracování určuje zahrnuty nebo vynechány volání.Pokud je definován symbol, volání je zahrnut; jinak je vynechán volání.Pomocí Conditional je Čistič, alternativní elegantnější a méně náchylnému k uzavření metody uvnitř #if…#endif bloky takto:
#If DEBUG Then
Sub ConditionalMethod()
End Sub
#End If
#if DEBUG
void ConditionalMethod()
{
}
#endif
Podmíněné metoda musí být metodu ve třídě nebo struktuře prohlášení a nesmí mít hodnotu vrácení.
Použití více identifikátorů
Pokud metoda má více Conditional atributy, volání metody je zahrnuta, pokud je definována nejméně jedna symboly podmíněné (jinými slovy, symboly jsou logicky spojeny operátorem OR).V tomto příkladu přítomnost buď A nebo B výsledkem volání metody:
<Conditional("A"), Conditional("B")>
Shared Sub DoIfAorB()
End Sub
[Conditional("A"), Conditional("B")]
static void DoIfAorB()
{
// ...
}
Chcete-li dosáhnout logicky propojení symbolů pomocí operátoru AND, můžete definovat sériové podmíněné metody.Například pod druhou metodu bude proveden pouze v případě obou A a B jsou definovány:
<Conditional("A")>
Shared Sub DoIfA()
DoIfAandB()
End Sub
<Conditional("B")>
Shared Sub DoIfAandB()
' Code to execute when both A and B are defined...
End Sub
[Conditional("A")]
static void DoIfA()
{
DoIfAandB();
}
[Conditional("B")]
static void DoIfAandB()
{
// Code to execute when both A and B are defined...
}
Pomocí podmíněného atribut třídy.
Conditional Atribut lze použít také k definici atributu třídy.V tomto příkladu vlastní atribut Documentation bude přidat pouze informace k metadatům ladění je definována.
<Conditional("DEBUG")>
Public Class Documentation
Inherits System.Attribute
Private text As String
Sub New(ByVal doc_text As String)
text = doc_text
End Sub
End Class
Class SampleClass
' This attribute will only be included if DEBUG is defined.
<Documentation("This method displays an integer.")>
Shared Sub DoWork(ByVal i As Integer)
System.Console.WriteLine(i)
End Sub
End Class
[Conditional("DEBUG")]
public class Documentation : System.Attribute
{
string text;
public Documentation(string text)
{
this.text = text;
}
}
class SampleClass
{
// This attribute will only be included if DEBUG is defined.
[Documentation("This method displays an integer.")]
static void DoWork(int i)
{
System.Console.WriteLine(i.ToString());
}
}
Atributy volající Info
Pomocí atributů volající Info lze získat informace o volající metodu.Můžete získat cestu k souboru zdrojový kód, číslo řádku v zdrojový kód a název člena volajícího.
Chcete-li získat informace volajícího členské použijete atributy, které jsou použity volitelné parametry.Každý volitelný parametr určuje výchozí hodnotu.Následující tabulka obsahuje informace o volajícím atributy, které jsou definovány v System.Runtime.CompilerServices oboru názvů:
Atribut |
Description |
Type |
Úplná cesta zdrojového souboru, který obsahuje volajícího.Toto je cesta v době kompilace. |
String |
|
Číslo řádku ve zdrojovém souboru, ze kterého je volána metoda. |
Integer |
|
Název metody nebo vlastnosti název volajícího.Další informace naleznete v tématu Volajícího (C# a Visual Basic). |
String |
Další informace o atributech volající Info viz Volajícího (C# a Visual Basic).
Atributy jazyka Visual Basic
V následující tabulce jsou uvedeny atributy, které jsou specifické pro aplikaci Visual Basic.
Atribut |
Účel |
---|---|
Kompilátoru označuje, že třída by měly být vystaveny jako objekt COM. |
|
Umožňuje přistupovat pouze kvalifikace potřebné pro modul modul členů. |
|
Určuje velikost řetězec pevné délky struktury pro použití souboru vstupní a výstupní funkce. |
|
Určuje velikost pole o pevné struktury pro použití souboru vstupní a výstupní funkce. |
COMClassAttribute
Použití COMClassAttribute zjednodušit proces vytváření komponent modelu COM z Visual Basic.Objekty modelu COM jsou značně odlišné od .NET Framework sestavení a bez COMClassAttribute, je nutné postupovat počet kroků k vytvoření objektu COM z Visual Basic.Pro třídy označeny COMClassAttribute, kompilátor provádí řadu tyto kroky automaticky.
HideModuleNameAttribute
Použití HideModuleNameAttribute umožníte členům modul je přístupný pouze kvalifikace potřebné pro modul.
VBFixedStringAttribute
Použití VBFixedStringAttribute k Visual Basic vytvořit řetězec pevné délky.Proměnné délky ve výchozím nastavení jsou řetězce a tento atribut je užitečné při ukládání souborů řetězce.Následující kód ukazuje toto:
Structure Worker
' The runtime uses VBFixedString to determine
' if the field should be written out as a fixed size.
<VBFixedString(10)> Public LastName As String
<VBFixedString(7)> Public Title As String
<VBFixedString(2)> Public Rank As String
End Structure
VBFixedArrayAttribute
Použití VBFixedArrayAttribute prohlásit pole, které mají pevnou velikost.Jako Visual Basic řetězce pole jsou ve výchozím nastavení proměnné délky.Tento atribut je užitečné při serializaci nebo zápisu dat do souborů.
Viz také
Referenční dokumentace
Přístup atributy pomocí odrazu (C# a Visual Basic)