Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1551 | Anzahl registrierter User: 1841 | Besucher online: 96
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Standardwerte für automatische Eigenschaften in .net 3.x


Autor: Günther Foidl
Sprache: VB.NET
Bewertung:
noch nicht bewertet
Anzahl der Aufrufe: 3586
  
Kick it on dotnet-kicks.de  

Beschreibung:

Die Einführung von automatischen Eigenschaften hat den großen Vorteil dass weniger Tipparbeit nötig ist.

Ein wesentlicher Nachteil ist dass keine Standardwerte gesetzt werden können.

Nachfolgend beschrieben ist eine Klasse die es ermöglich Standardwerte per Attribut zu setzten.

Verwendungsbeispiel:

Public Class [MyClass]
Inherits AutomaticProperties
_
Public Property boolWert() As Boolean
Get
End Get
Set
End Set
End Property

_
Public Property intWert() As Integer
Get
End Get
Set
End Set
End Property

_
Public Property stringWert() As String
Get
End Get
Set
End Set
End Property
End Class


Abgelegt unter: Eigenschaft, Eigenschaften, Standardwert, automatische Eigenschaft.



Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Imports System.ComponentModel
Imports System.Reflection

Namespace gfoidl.Tools
    Public Class AutomaticProperties
        ''' <summary>
        ''' Weist die Standardwerte den Eigenschaften zu.
        ''' </summary>
        ''' <param name="o">
        ''' Die Klasse bzw. die Instanz davon dessen Eigenschaften
        ''' gesetzt werden soll
        ''' </param>
        Public Overridable Sub InitDefaults(o As Object)
            ' Alle Eigenschaften holen:
            Dim propteryInfos As PropertyInfo() = o.GetType().GetProperties(BindingFlags.Public Or BindingFlags.NonPublic Or BindingFlags.Instance Or BindingFlags.Static)
            
            ' Alle Eigenschaften durchlaufen:
            For Each pi As PropertyInfo In propteryInfos
                ' Nur wenn ein Attribut gesetzt ist:
                If pi.GetCustomAttributes(True).Length > 0 Then
                    ' Attribute holen:
                    Dim attributes As Object() = pi.GetCustomAttributes(GetType(DefaultValueAttribute), True)
                    
                    If attributes IsNot Nothing Then
                        ' Das 1. Attribut holen:
                        Dim dva As DefaultValueAttribute = TryCast(attributes(0), DefaultValueAttribute)
                        
                        If dva IsNot Nothing Then
                            pi.SetValue(o, dva.Value, Nothing)
                        End If
                    End If
                End If
            Next
        End Sub
        '---------------------------------------------------------------------
        ''' <summary>
        ''' Der Konstruktor wird immer als ersters aufgerufen wenn von dieser
        ''' Klasse abgeleitet wird!
        ''' </summary>
        Public Sub New()
            InitDefaults(Me)
        End Sub
    End Class
End Namespace

Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Volker Steitz schrieb am:  08.10.2008 21:53:41

Sehr praktisch!!!


schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.