Benutzer mit den meisten Antworten
Frage zu xxxEventArgs Eigenschaften

Frage
-
Hallo,
ich habe bisher beim Erstellen einer Klasse für EventArgs die Eigenschaften immer als z.B. "Public Property xxx AS Boolean" deklariert da ich den Eigenschaften vor dem Auslösen des jeweiligen Ereignis Werte zuweisen muss; soweit so gut.
Jetzt ist mir im Objektbrowser aufgefallen, dass .NET xxxEventArgs-Eigenschaften (bis auf die Handled-Eigenschaft, logisch) immer als "Public Readonly Property xyz" deklariert sind; was ja eigentlich auch vernünftig ist.
Es stellt sich mir jetzt aber die Frage wie ich in der Klasse die das Event auslöst den Readonly-Eigenschaften ihre Werte zuweisen kann? Bzw. wie wird das in .NET gemacht?
Besten Dank für eine Erklärung,
f_ro
Antworten
-
Hi,
man kann das bspw. über den Konstruktur machen.
Public Class DummyEventArgs Inherits EventArgs Private _Dummy As String Public ReadOnly Property Dummy As String Get Return _Dummy End Get End Property Public Sub New() End Sub Public Sub New( ByVal Dummy As String ) Me._Dummy = Dummy End Sub End Class
Dim args As New DummyEventArgs( "Hallo Welt" )
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert f_ro Donnerstag, 19. Juni 2014 14:35
Alle Antworten
-
Hi,
man kann das bspw. über den Konstruktur machen.
Public Class DummyEventArgs Inherits EventArgs Private _Dummy As String Public ReadOnly Property Dummy As String Get Return _Dummy End Get End Property Public Sub New() End Sub Public Sub New( ByVal Dummy As String ) Me._Dummy = Dummy End Sub End Class
Dim args As New DummyEventArgs( "Hallo Welt" )
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert f_ro Donnerstag, 19. Juni 2014 14:35
-
Hallo,
setze die Eigenschaften einfach im Konstruktor:Class MyEventArgs Public Sub New(Test As String) Me._Test = Test End Sub Dim _Test As String Public ReadOnly Property Test As String Get Return _Test End Get End Property End Class
In VB.NET können die Auto-Implementierten Eigenschaften nicht readonly sein. Damusst du den ausführlichen Weg benutzen.
Alternativ wäre es möglich eine Hilfsmethode zu erstellen, worauf nur deine verwendende Klasse Zugriff (Freidn, Protected) hat. Das macht aber nur Sinn, wenn du alles in einer extra Assembly o.ä. hast
Tom Lambert - C# MVP
Bitte bewertet- und markiert Beiträge als Antwort. Danke.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets