Wenn Du gedanklich im Modul
Du musst es stattdessen so machen:
##########
Zugriffe auf implizite Form-Instanzen von außen (
In Deiner
Statt mit der
Dann kannst Du in der aufrufenden Methode mit den konkreten Namen arbeiten und musst nicht mehr
Du hast noch mehrfach
Propertys:
Benennungen: (Achtung, persönliche Meinung! Diese ist bekanntlich keine verlässliche Referenz!)
Das erstmal beim ersten Überfliegen.
ModEmailSenden
bist, dann erstellst Du _Mail
einmalig, sobald der erste Modulteil verwendet wird (wahrscheinlich TryToSendMail
das erste Mal aufgerufen wird) mit Private _Mail As New MailMessage
und später führst Du Dispose
aus. Danach ist _Mail
hinüber und nicht mehr nutzbar. Du erstellst sie sonst nirgends.Du musst es stattdessen so machen:
##########
Zugriffe auf implizite Form-Instanzen von außen (
frmHaupt.StatusStripTextLabel.Text = "Email wird versendet"
) ist für mich immer ein Dorn im Auge. Im dümmsten Fall enden wir bei: Warum »Form1.Show« und Co. einem irgendwann ins Bein schießenCatch ex As Exception
: Fange nur Exceptions ab, die Du kennst und sinnvoll bearbeiten kannst.In Deiner
ClsMailDaten
(uah!, warum hat das Teil ein Präfix? Bei Controls inkl. Forms seh ich das ja ein, aber "normale" Klassen sollten sowas nicht haben) hast Du noch einmal Or
drin.Statt mit der
Tuple
-Klasse geht beim eingestellten Framework auch:VB.NET-Quellcode
- Public Function CheckForMailText() As (SubjectHasText As Boolean, SubjectErrorText As String, MessageHasText As Boolean, MessageErrorText As String)
- Dim SubjectHasText = _Subject.IsNotEmpty
- Dim MessageHasText = _Message.IsNotEmpty
- Return (SubjectHasText, "kein Betreff", MessageHasText, "keine Nachricht")
- End Function
Dann kannst Du in der aufrufenden Methode mit den konkreten Namen arbeiten und musst nicht mehr
Item1
, Item2
, … verwendenDu hast noch mehrfach
ByVal
Im Code. Kann weg. Genauso Call
Propertys:
Set(ByVal Value As Datentyp)
-> Set
Benennungen: (Achtung, persönliche Meinung! Diese ist bekanntlich keine verlässliche Referenz!)
SaveDGVColwidths
/LoadDGVColwidths
- ja gut, mir ist klar was gemeint ist, aber wozu der Geiz? SaveDGVColumnWidths
/LoadDGVColumnWidths
ShowMessageBoxYesNo
- ShowMessagebox
: Wenn man von der Schreibung von box
und Box
absieht, ist das mit dem YesNo
m.E. nicht selbsterklärend.CheckStringEmpty
: Wenn Du da eine interne Coderegel hast, ist's ok. Aber ich würde als Außenstehender nicht wissen, was die Methode macht und zurückgibt.NewAddress
ist ein Methodenname, aber kein Befehl/Imperativ. Es fehlt das Verb.Das erstmal beim ersten Überfliegen.
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.
Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „VaporiZed“ ()