Die Community zu .NET und Classic VB.
Menü

Tipp-Upload: VB.NET 0151: Memberattribute setzen - Variablenkommentare

 von 

Hinweis zum Tippvorschlag  

Dieser Vorschlag wurde noch nicht auf Sinn und Inhalt überprüft und die Zip-Datei wurde noch nicht auf schädlichen Inhalt hin untersucht.
Bitte haben Sie ein wenig Geduld, bis die Freigabe erfolgt.

Über den Tipp  

Dieser Tippvorschlag ist noch unbewertet.

Der Vorschlag ist in den folgenden Kategorien zu finden:

  • Sonstiges

Dem Tippvorschlag wurden folgende Schlüsselwörter zugeordnet:
Attribute, System.Attribute, <, >, VarInfo, Kommentar, Comment

Der Vorschlag wurde erstellt am: 28.11.2007 14:22.
Die letzte Aktualisierung erfolgte am 28.11.2007 14:22.

Zurück zur Übersicht

Beschreibung  

Mit Attributen kann man sehr einfach einer Variablen eine Beschreibung bzw. einen Kommentar anfügen und diese wieder abrufen. Und das alles ohne XML.

Schwierigkeitsgrad

Schwierigkeitsgrad 2

Verwendete API-Aufrufe:

Download:

Download des Beispielprojektes [7,84 KB]

' Dieser Source stammt von http://www.activevb.de
' und kann frei verwendet werden. Für eventuelle Schäden
' wird nicht gehaftet.

' Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
' Ansonsten viel Spaß und Erfolg mit diesem Source!
'
' Beachten Sie, das vom Designer generierter Code hier ausgeblendet wird.
' In den Zip-Dateien ist er jedoch zu finden.

' ------------ Anfang Projektgruppe VarInfo1.sln  ------------
' ----------- Anfang Projektdatei VarInfo1.vbproj  -----------
' ----------------- Anfang Datei Module1.vb  -----------------
Imports System
Imports System.Reflection

<AttributeUsage(AttributeTargets.Field)> Public Class VarInfo

    Inherits Attribute
    Protected mDescription As String

    Public Sub New(ByVal Description As String)

        mDescription = Description

    End Sub

    Public Property Description() As String
        Get
            Return mDescription

        End Get

        Set(ByVal Value As String)
            mDescription = Value

        End Set

    End Property

End Class

Class Raumschiff

    <VarInfo("Die maximale Geschwindigkeit des Raumschiffes")> Public MaxSpeed As Single
    <VarInfo("Das Team des Raumschiffes")> Public Team As String
    <VarInfo("Die Zahl der Waffen")> Public NumWeapons As UShort

End Class

Class Tier

    <VarInfo("Ist das Tier ein Haustier?")> Public IsPet As Boolean
    <VarInfo("Wie heißt das Tier?")> Public Name As String

End Class

Public Module Module1

    Sub Main()

        GetTypeInfo(GetType(Raumschiff))
        GetTypeInfo(Of Tier)()

        Console.ReadKey()

    End Sub

    Public Sub GetTypeInfo(ByVal Type As System.Type)

        Console.WriteLine("Der Typ '{0}' enthält folgende kommentiere Variablen:", Type.Name)
        Console.WriteLine()

        For Each fInfo As FieldInfo In Type.GetFields
            For Each CurAttr As Attribute In Attribute.GetCustomAttributes(fInfo)

                If TypeOf CurAttr Is VarInfo Then Console.WriteLine("{0} ( {1} ) : {2}", _
                    fInfo.Name, fInfo.FieldType.ToString, CType(CurAttr, _
                    VarInfo).Description)

            Next
        Next

        Console.WriteLine()
        Console.WriteLine()

    End Sub

    Public Sub GetTypeInfo(Of T)()

        GetTypeInfo(GetType(T))

    End Sub

End Module

' ------------------ Ende Datei Module1.vb  ------------------
' ------------ Ende Projektdatei VarInfo1.vbproj  ------------
' ------------- Ende Projektgruppe VarInfo1.sln  -------------

	

Diskussion  

Diese Funktion ermöglicht es, Fragen, die die Veröffentlichung des Tipps betreffen, zu klären, oder Anregungen und Verbesserungsvorschläge einzubringen. Nach der Veröffentlichung des Tipps werden diese Beiträge nicht weiter verlinkt. Allgemeine Fragen zum Inhalt sollten daher hier nicht geklärt werden.
Folgende Diskussionen existieren bereits

Um eine Diskussion eröffnen zu können, müssen sie angemeldet sein.