| |
VB.NET - Ein- und UmsteigerAccessor nur bei Property oder auch woanders vorhanden? | | | Autor: sv00010 | Datum: 04.12.23 11:25 |
| Ich bin gerade am Schreiben einer Abfrage.
Es geht dabei um den Accessor wie "Get" und "Set" einer Property.
If Beispielobject.IsProperty = True AND Beispielobject.Propertyname <> _
PROPERTYNAME_NOT_IN_USE Then
'Hier kommt noch Code rein
End If Ich kenne diese bisher nur von Properties.
Werden Accessor wie "Get" und "Set" nur bei Properties verwendet oder gibt es noch andere Möglichkeiten,
welche ich nur noch nicht kenne?
Es handet sich hier um Code in .Net.
Ich weiß, dass diese Member unter VB6 LET usw. heißen, dies habe ich allerdings nicht gemeint.
Es geht mir ausschließlich darum, ob ich die Abfrage für den Accessor in die Abfrage
If Beispielobject.IsProperty... rein machen oder eine neue Abfrage darunter erstellen muss?
Beitrag wurde zuletzt am 04.12.23 um 11:26:46 editiert. | |
Re: Accessor nur bei Property oder auch woanders vorhanden? | | | Autor: Manfred X | Datum: 04.12.23 12:49 |
| Hallo!
Was genau meinst Du?
Dieses.... ?
Dim ty As Type = GetType(List(Of))
Dim mi() As System.Reflection.MemberInfo = ty.GetMembers()
For it As Integer = 0 To mi.Length - 1
If mi(it).MemberType = System.Reflection.MemberTypes.Property Then
'
End If
Next it Direkte Abfrage der Properties eines Typs:
Dim pi() As System.Reflection.PropertyInfo = ty.GetProperties()
Wofür verwendest Du Reflection?
Beitrag wurde zuletzt am 04.12.23 um 13:04:50 editiert. | |
Re: Accessor nur bei Property oder auch woanders vorhanden? | | | Autor: sv00010 | Datum: 04.12.23 15:12 |
| Manfred X schrieb:
Zitat: | | Hallo!
Was genau meinst Du?
| |
Ich möchte mir eine Structure oder Klasse basteln, mit welcher ich bestimmte Sachen protokollieren kann.
Ich weiß, dass es die Get und Set-Accessor bei Properties gibt.
Was ich nicht weiß ist, ob solche Accessor noch bei anderen Sachen vorkommen.
Das Problem ist, dass ich das .Net Framework nicht vollständig kenne.
Ich kenne nur die Sachen vom .Net Framework, welche ich schon mal benutzt habe.
Ein Interface zum Beispiel habe ich noch nie verwendet und kenne es daher auch nicht.
Da drängt sich natürlich der Verdacht auf, dass da ich das .Net Framework nicht vollständig kenne,
ich nicht mitbekommen würde, wenn noch weitere Klasse aus dem .Net Framework Accessor verwenden.
Beitrag wurde zuletzt am 04.12.23 um 15:15:10 editiert. | |
Re: Accessor nur bei Property oder auch woanders vorhanden? | | | Autor: Manfred X | Datum: 04.12.23 15:51 |
| Ich kann nur Dir raten, zu erklären, was GENAU Du machen willst.
Wie man das programmiert, kann man dann erklären.
Du scheinst System.Reflection verwenden zu wollen ???
Diese Technik benötigt man nur in Ausnahmefällen.
Das objektorientierte Progammieren bietet eine Fülle von
Möglichkeiten.
Insbesondere kann man eine Basis-Klasse mit den Grundfunktionen
für das Protokollieren erstellen und für erweiterte
Protokoll-Aufgaben Klassen davon ableiten (Inherits),
die zusätzliche Properties oder Methoden enthalten. | |
Re: Accessor nur bei Property oder auch woanders vorhanden? | | | Autor: sv00010 | Datum: 04.12.23 16:08 |
| Danke für den Versuch, aber ich glaube es wird zu kompliziert.
Die Klasse welche ich programmieren will, ist in den Grundzügen bereits vorhanden.
Sie wird allerdings immer mal wieder erweitert.
Das mit der Reflection verwende ich.
Im Grund geht es darum dass, ich mir eine Protokollierung für Programmierfehler erstelle.
z.B.
Shared Friend Beispielfunktion(Of T1, T2, T3)(ByVal Wert1 As T1, ByVal Wert2 As _
T2, ByRef Ergebnis As T3) As Boolean
'Irgendwelcher Code
return True
ErrorExit:
'Hier muss jetzt der ganze Kram herausgefunden werden, welcher übergeben
' worden ist usw.,
'damit ich die Sachen in eine Datei schreiben kann, um ohne zu debuggen
' herauszufinden,
'was falsch gelaufen ist.
'Das Problem ist, dass Fehler welche bei mir nicht auftreten,
'aber auf dem fremden PC auf welchem das Programm am Ende läuft,
'irgendwie abgespeichert werden müssen, damit ich nicht nur blödsinnige
' Aussagen bekomme,
'welche mir beim Bugfixen des Fehlers nicht weiterhelfen.
return False
End Function | |
Re: Accessor nur bei Property oder auch woanders vorhanden? | | | Autor: Manfred X | Datum: 04.12.23 16:29 |
| Wie wäre es, wenn Du einen Try..Catch-Block verwendest?
Du erhälst nach einer auffangbaren Ausnahme ein Objekt des Typs "Exception"
im Catch-Block.
Du kannst im Programm eigene Ausnahmen erstellen und lokal auslösen
(beliebiges Info-Objekt, abgeleitet von der System.Exception-Klasse)
Eine einfache globale Feherbehandlung (Zitat):
"Deaktiviere das Anwendungsframework, schreibe eine 'Public Shared Sub Main()'
in deine Form-Klasse und starte darin mit Application.Run(New DeineForm) dein Formular.
Wenn du das alles in einen Try...Catch-Block legst, hast du eine einfache
globale Fehlerbehandlung." | |
Re: Accessor nur bei Property oder auch woanders vorhanden? | | | Autor: Kuno60 | Datum: 04.12.23 18:57 |
| Hallo,
in NET gibt es ein Tracing-System. Damit kannst du die Programmausführung und Fehlerüberwachung zur Laufzeit in eine Datei schreiben lassen. In den Projekt-Eigenschaften kannst du auch eine Trace-Konstante ein- oder ausschalten.
Trace kannst du so ähnlich wie Throw verwenden. | |
Re: Accessor nur bei Property oder auch woanders vorhanden? | | | Autor: sv00010 | Datum: 04.12.23 21:06 |
| Manfred X schrieb:
Zitat: | | Wie wäre es, wenn Du einen Try..Catch-Block verwendest? | |
Der Try Catch-Block ist normalerweise dort, wo ich:
'Irgendwelcher Code
kommentiert habe.
Wenn eine Exception kommt, dann springt er in den ErrorExit.
Der ganze Error-Kram ist bei mir komplett in einer Klassenbibliothek drin.
Ich möchte den ganzen Kram einmal programmieren und dann bei jedem Programm,
welches ich erstelle verwenden.
Im Hauptprogramm möchte ich nur die Aufrufe haben, um neue Meldungen einzutragen,
zu löschen usw.
Beitrag wurde zuletzt am 04.12.23 um 21:07:09 editiert. | |
Re: Accessor nur bei Property oder auch woanders vorhanden? | | | Autor: sv00010 | Datum: 04.12.23 21:13 |
| Die Lösung muss auch funktionieren, wenn die Anwendung mit "Release" kompiliert wird. | |
Re: Accessor nur bei Property oder auch woanders vorhanden? | | | Autor: Kuno60 | Datum: 04.12.23 21:56 |
| Ja, geht auch im Release Modus. | |
Re: Accessor nur bei Property oder auch woanders vorhanden? | | | Autor: sv00010 | Datum: 05.12.23 11:22 |
| Danke.
Ich werde mir das mit Trace anschauen, sobald ich wieder mehr Zeit habe.
Ich habe das Problem jetzt irgendwie abgewürgt.
Das Thema könnte eigentlich geschlossen werden.
Wenn natürlich noch jemand nützliche Hinweise oder Kommentare hat, dann immer her damit. | |
Re: Accessor nur bei Property oder auch woanders vorhanden? | | | Autor: Manfred X | Datum: 05.12.23 20:25 |
| Hallo!
Falls Du bereits Ausnahmen durch Try-Catch-Blöcke abfängst,
benötigst Du nur eine global verfügbare Funktion (Shared),
die in jedem Catch-Block aufgerufen wird und der als Parameter
das Exception-Objekt derAusnahme übergeben wird. Zusätzlich
eventuell eine Kennziffe, die den Catch-Block identifiziert
Diese Funktion liest alle Informationen aus der Exception aus
und hängt sie in einer Protokoll-Datei an - insbesondere den StackTrace. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Neu! sevCommand 4.0
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere Infos
|