Event-Erstellung und Behandlung

  • VB.NET

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von Nofear23m.

    Event-Erstellung und Behandlung

    Wahrscheinlich ist meine Frage bereits früher mal gestellt worden, aber ich kann leider keine Antwort finden, und muß deshalb nochmal ein neues Thema öffnen.


    Die Situation ist wie folgt:
    Ich habe eine funktionierende Klasse mit Ereignissen.
    Ich kann die Klasse in verschiedenen Klassen und Modulen deklarieren und dann dort auch die Events abfragen. Das läuft alles.

    Meine Frage dazu:
    Ist es möglich die Klasse in einem Modul als Public zu deklarieren und dann in verschiedenen Forms auf die Events reagieren?

    Im einem Modul sieht mein Code bisher so aus.

    Quellcode

    1. Public WithEvents MeinClsObject As MeineClass
    2. Private Sub MeinClsObject_Changed(sender As Object, e As System.EventArgs) Handles MeinClsObject.Changed
    3. MessageBox.Show("Änderung in MeineCls")
    4. End Sub

    Das funktioniert. Das Fenster geht auf ganz gleich in welchem Programmteil ich mich befinde. Nun würde ich gern die Meldung in verschiedenen Forms variieren (evt. auch anders als mit Meldefenster drauf reagieren), aber nicht in jeder Form ein Object deklarieren, sondern eben mit einem Public-Object arbeiten, dessen Events dann in jeder Form behandelt werden.


    Weiß da jemand Rat?
    Hallo

    claus schrieb:

    Im einem Modul sieht mein Code bisher so aus

    Wenn du in einem Modul ein Objekt hast kannst du dieses mit Public Shared deklarieren um überall Zugriff zu erhalten.

    Du sprichst von einer Form. Imer dieselbe Instanz einer Form zu öffnen ist eine schlechte Idee. Nur so als Anreiz.

    Ich würd dir empfehlen unabhängig von deinem aktuellen Problem zu beschreiben was du bezwecken willst, wenn ich mir das so ansehe bin ich sicher es gibt für dein Vorhaben bessere Lösungen.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Warum

    claus schrieb:

    in einem Modul
    :?:
    Du kannst ein Event beliebig oft abonieren, alle Abonenten bekommen dann ein Event.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Nofear:
    Du sprichst von einer Form

    Wo?
    Ich habe verschiedene Forms, im Moment 38. Keine verschiedenen Instanzen.
    Ansonsten weiß ich nicht, was Du meinst:

    Quellcode

    1. Public Shared WithEvents MeinClsObject As MeineClass
    geht nicht.

    Quellcode

    1. Public Shared Event Changed As EventHandler
    steht in MeineClass.
    Was ich will? Nun z.B. eine Überwachung des Zwischenspeichers in einer Class abhandeln und auf die Events dieser Class in jeder Form reagieren.
    Oder wie es Microsoft zeigt msdn.microsoft.com/de-de/library/5z57dxz2(v=vs.110).aspx Beispiel unten auf der Seite
    den Speicheerplatz der verschiedenen Drives überwachen. Und dann z.B. in jeder offenen Form eine Warnblinke angehen lassen.


    @Rod:
    Aha, und wie geht das Abonnieren?
    Wenn ich die Deklaration des Objects so wie oben in ein Modul setze und die Sub in eine Form dann kann ich den Event nicht so abfragen, wie wenn ich das Object in der Form deklariere.
    Eine andere Abfrage auf Events als die oben im Code angegebene kenne ich nicht.

    Dieser Beitrag wurde bereits 11 mal editiert, zuletzt von „claus“ ()

    Hallo

    Sorry, das mit Shared war eine Fehlinformation von meiner Seite. Ich war jetzt wo anders.

    Bei mir funzt das. Das Modul muss natürlich auch Public sein.

    Mein Modul:

    VB.NET-Quellcode

    1. Public Module TestModul
    2. Public Event TestEvent(sender As Object)
    3. End Module


    Irgendwo anders:

    VB.NET-Quellcode

    1. AddHandler TestModul.TestEvent, AddressOf MySub


    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Tut mir leid, ich versteh's nicht.

    Ich habe den Event in MeineClass. Im Modul "xxxModul" habe ich die Deklaration damit die Klasse zum Object wird. Wenn ich da Dein

    Quellcode

    1. AddHandler TestModul.TestEvent, AddressOf MySub
    mit dazuschreibe, gibt's einen Fehler. Und was ist Dein "MySub" ??? Ist das bei mir "MeinClsObject_Changed" ? Kann nicht sein. Sorry, ich blick's nicht.
    Man, MySub ist eine Sub von MIR. Einfach ein Test. Ich mach dir kein Copy&Paste Beispiel. Du sollst es ja lernen.

    Du hast oben alles was du benötigst.
    Ich könnte dir auch gar kein Beispiel machen was für dich passen würde. Du schmeisst hier Codefetzen her die überall stehen könnten.
    Mal redest du von einer Klasse, dann wieder von einem Modul und hier und da wieder von einer Form. Ja im oberen Beitrag steht sicher 3x was von einer Form.

    Ich habe dir ein Beispiel gepostet wie du ein Event ÜBERALL sichtbar machen kannst. Ob sinnvoll oder nicht lass ich jetzt mal im Raum stehen, aber es würde funkionieren.
    Der Rest liegt jetzt an dir, den Code zu verstehen und auf dein Projekt zu portieren. (Googlen Hilft hier)

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    @claus Vergiss mal die Module, arbeite mit instanziierbaren Klasen.
    Nicht getestet :!:

    VB.NET-Quellcode

    1. Class a
    2. Public Event eventA
    3. Public Sub DoIt()
    4. RaisEvent eventA(Me, EventArgs.Empty)
    5. End Sub
    6. End Class
    7. Class b
    8. Private MyA As a
    9. Public Sub New()
    10. MyA = New a
    11. AddHandler MyA.eventA, AddressOf MySub
    12. MyA.DoIt()
    13. End Sub
    14. Public Sub MySub(sender As Object, e As EventArgs)
    15. MessageBox("Ich bin a")
    16. End Sub
    17. End Class

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @NoFear: 'schuldigung. Wahrscheinlich habe ich mich unklar ausgedrückt. Das ist aber kein Grund gleich aggressiv zu werden. Ich brauche niemanden, der mir Code vorkaut. Und der einzige von uns beiden, der hier "Codefetzen",wie Du das nennst, rumwirft, das bist wohl Du. In meinem Eingangspost habe ich Code gepostet, der genauso bei mir in einem Modul steht. Natürlich mit anderen Bezeichnungen, denn was bei mir z.B. GSFClass bedeutet, das kannst Du nicht wissen. Dieser Code nun bringt mir beim Eintreten des Ereignisses, wenn's denn z.B. um Änderungen im Clipboard geht, eine entsprechende Meldung auf den Monitor. Das einzige, das mir fehlt bzw. was ich nicht weiß, ist, ob ich die Klasse in einem Modul als Public Object deklarieren kann und gleichzeitig im Code aller Forms auf einen Event dieses Objects zugreifen kann.
    Wenn ich obige Zeilen in den Code einer Form einfüge, dann geht der. Aber dann habe ich für jede geöffnete Form eine Instanz dieser Objectclass. Und gerade das will ich nicht und dafür suche ich eine Lösung.
    Zuguterletzt darfst Du mir glauben, daß ich seit Tagen immer wieder nach einer Lösung gesucht und auch gegoogelt habe. Und, stell Dir vor, ich habe sogar .Net-Bücher zuhause und lese darin. Und weil ich mich vom Unterton Deines Post wirklich angegriffen fühle, laß Dir sagen, daß ich schon auf einem C64 programmiert habe, da haben noch nicht einmal Deine Eltern was von Dir gewußt.


    @Rod: Dein Rat, die Module zu vergessen, ist ok. Ich benutze auch nur ganz wenige. Bei deren Code handelt es sich fast ausschließlich um Deklarationen, die ich global verwende. Ich könnte auch alle in einem Modul zusammenfassen, mache das aber aus strukturellen Gründen nicht. Natürlich könnte ich diese Deklarationen auch in jeder Form bzw. Class (ich weiß auch Forms sind Klassen) reinschreiben, aber wozu? Ich seh darin eine überflüssige Aufblähung des Codes.
    Ja, so wie Dein Beispiel habe ich es mir in etwas vorgestellt. Danke. Allerdings muß ich es noch bei mir testen, da ich nur aus dem Lesen noch nie über Code schlau geworden bin. Jetzt ruft aber erstmal das Essen. Also, ich dank Dir und wünsch noch einen angenehmen Abend. Morgen kannst Du lesen, wie's mir weiter ergangen ist.

    claus schrieb:

    Das ist aber kein Grund gleich aggressiv zu werden

    Bin ich doch nicht, habe dich nur darauf hingewiesen das du oben alles hast, falls du etwas überlesen haben solltest.

    claus schrieb:

    Und der einzige von uns beiden, der hier "Codefetzen",wie Du das nennst, rumwirft, das bist wohl Du.

    Im Gegensatz zu dir habe ich das ganze Modul gepostet, in deinem Code sehe ich z.b. nicht ob das Modul selbst Pulbic ist oder nicht ;) Denk drüber nach. :whistling:

    claus schrieb:

    da haben noch nicht einmal Deine Eltern was von Dir gewußt.

    Nana, du bist es der Hilfe sucht, lassen wir das. Ich nehme das nicht so ernst.

    Fazit, der Code den ich dir gepostet habe würde funktionieren, und ja mehr code ist es nicht, das sind keine Codefesten. WO du das AddHandler einsetzt bleibt ja dir überlassen.
    Das Modul ist für Tests vollkommen ausreichend. Da gibts nicht mehr Code. Also sind das auch keine "Codefetzen". Auf das wollte ich dich nur Hinweisen, vieleicht klingt mein obiger Text mit der Info nicht mehr so harsch für dich.

    In diesem Sinne
    Grüße und wie Atmen alle wieder durch.
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    claus schrieb:

    Was ich will? Nun z.B. eine Überwachung des Zwischenspeichers in einer Class abhandeln und auf die Events dieser Class in jeder Form reagieren.
    Grad in diesem Fall ist ein Modul mit einem Event durchaus angemessen.
    Denn es gibt nur eine Zwischenablage, also braucht man keine mehreren Objekte, und wenn man keine mehreren Objekte braucht, braucht man auch keine Klasse (kann man trotzdem machen, aber wirklich einfacher wird dadurch nichts).

    claus schrieb:

    Ich habe den Event in MeineClass. Im Modul "xxxModul" habe ich die Deklaration damit die Klasse zum Object wird.
    Der Satz ist unverständlich.
    Es geht doch um ein Event in einem Modul. Und jetzt redest du von einem Event in MeineClass - da scheint schon was missverstanden.
    Und "die Deklaration im Modul, damit die Klasse zum Objekt wird" - das ergibt gar keinen Sinn - eine Klasse kann nicht zum Objekt werden, schon garnicht durch eine Deklaration.

    Falls du dich für korrekte Begrifflichkeiten (als Vorraussetzung erfolgreicher Kommunikation) interessierst: Grundlagen: Fachbegriffe

    Falls du die Zusammenhänge zwischen Events, Handles-Klausel, AddHandler etc. verstehen willst: Alles über Events
    @ ErfinderDesRades : korrekte Begrifflichkeiten ? Ja, da fehlt's vielleicht. Danke für die Links. Den "Alles über Events" hatte ich bereits gelesen, aber darin keine Antwort zu meiner Frage gefunden. Oder ich sag's anders: jeder Transfer des Gelesenen auf meine Situation war nicht lauffähig.
    Allerdings verstehe ich nicht, warum mein von Dir zitierter Satz Dir unverständlich ist. In Deinem Post "Grundlagen: Fachbegriffe" steht's mMn genauso:
    Wie gesagt: ein Objekt erstellt man, indem man den Konstruktor eines Datentyps mit dem Schlüsselwort New aufruft. Diesen Ausdruck weist man meist einer Variablen dieses Datentyps zu. Das Objekt hat dann den Datentyp, und ist gewissermaßen in der Variable drinne.
    Etwas weiter vorne steht, eine Klasse ist einer von 3 und mehr Datentypen. Gut, sicherlich wäre es exakter gewesen, wenn ich geschrieben hätte : "einer Variablen den Datentyp der Klasse MeineClass zuweise." Und diese Variable wird durch Deklaration und Datentyp-Zuweisung zu einem Object. Oder was machen Deiner Meinung nach Dim, Private oder Public?
    Es geht doch um ein Event in einem Modul
    Nein. Es geht darum, in jeder Form auf den Event zu reagieren, da z.B. in jeder geöffneten Form ein Label "Achtung" angezeigt werden soll. Wenn ich von meinem eingangsgepostetem Code ausgehe und die Zeilen 3-5 in den Code jeder Form setze, dann habe ich das gewünschte Ergebnis. Nur muß ich dann (lt. meinem bisherigen Wissen) auch die Zeile 1, die mMn eine Deklaration ist, in den Code jeder Form setzen. Und genau das will ich vermeiden, sondern die Zeile 1 einmalig mit Public deklarieren, was mMn nur in einem Modul so geschehen kann, daß alle Forms auf die Variable zugreifen kann. Wenn ich mir allerdings den Code von Rod ansehe, dann geht das, was ich will, wohl nicht. Denn in seinem Code wird die Variable MyA Private als a deklariert.
    und zuguterletzt ist der Event ein Element in MeineClass. Was ist daran falsch?

    @Rod: Also, Du scheinst verstanden zu haben, worauf ich hinaus wollte. Über Deine "Class a" sind wir einig. Aber Deine "Class b" geht mMn auch so

    Quellcode

    1. Class b
    2. Private WithEvents MyA As a
    3. Public Sub New()
    4. MyA = New a
    5. End Sub
    6. Public Sub MyA_eventA(sender As Object, e As EventArgs)
    7. MessageBox("Ich bin a")
    8. End Sub
    9. End Class

    Oder liege ich da falsch?
    In meiner Antwort auf EdR habe ich ja schon geschrieben, daß ich das so machen würde, und daß es mir um "Private MyA As a" geht. Wenn "Class b" der Code einer Form ist, und es auch noch die Forms c und d usw. gibt, dann muß in jedem Code dieser Forms der komplette Code Deiner " "Class b" stehen. Nur Deine Sub "MySub" oder in meinem Code hier "MyA_eventA" reicht nicht. Es geht nicht, daß ich statt "Private MyA As a" ein Modul "Public WithEvents MyA As a" setze und dann in den Forms darauf mit dem Code der Sub in "Class b" reagiere. Richtig?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „claus“ ()

    Hallo

    OK, da wir jetzt bereits Klassen und Module in den Raum geworfen haben sollten wir darüber Reden wie solch eine Aufgabenstellung korrekt gemacht wird.
    Meiner Meinung nach benötigt @claus eine Singleton Klasse. Das ist denke ich die beste herangehensweise für eine solche Aufgabenstellung.

    Du arbeitest sohin mit Klassen anstatt mit "popeligen" Modulen und hast aber den Vorteil das du nur EINE Instanz dieser Klasse hast.

    Das Prinzip einer Singleton:

    VB.NET-Quellcode

    1. Public Class MySingleton
    2. Private Shared ReadOnly _myInstance As New MySingleton
    3. Public Shared ReadOnly Property MyInstance As MySingleton
    4. Get
    5. Return _myInstance
    6. End Get
    7. End Property
    8. End Class


    Ich denke Anhand der der Klasse und dem Property (ist ja übersichtlich) sollte klar sein wie das funzt.
    Der Ordnung halber habe ich, damit man es vieleicht besser nachvollziehen kann ein kleines Beispiel in .Net 4.0 erstellt welches das Prinzip veranschaulicht und im Grunde alles enthält was du angesprochen hast.

    Egal welche Funktion (Properties, Events), du benötigst überall im Programm im Grunde nur eine zeile Code und muss nichts instanzieren.

    Hier die ganze Klasse:

    VB.NET-Quellcode

    1. Public Class MySingleton
    2. Private Shared ReadOnly _myInstance As New MySingleton
    3. Public Shared ReadOnly Property MyInstance As MySingleton
    4. Get
    5. Return _myInstance
    6. End Get
    7. End Property
    8. Public Property TestProperty As String
    9. Public Event MyTestEvent(parameter As String)
    10. Public Sub RaiseTestEvent(param As String)
    11. RaiseEvent MyTestEvent(param)
    12. End Sub
    13. End Class


    Hier Beispiele inerhalb einer Form wo man schön sieht das alles so funzt wie du es willst:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
    3. AddHandler MySingleton.MyInstance.MyTestEvent, AddressOf MyEvent_Raised
    4. End Sub
    5. Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
    6. RemoveHandler MySingleton.MyInstance.MyTestEvent, AddressOf MyEvent_Raised
    7. End Sub
    8. Private Sub MyEvent_Raised(parameter As String)
    9. MessageBox.Show(String.Format("Event aus Signleton Klasse wurde geworfen. Parameter: {0}", parameter.ToString))
    10. End Sub
    11. Private Sub btnRaiseEvent_Click(sender As Object, e As EventArgs) Handles btnRaiseEvent.Click
    12. MySingleton.MyInstance.RaiseTestEvent(Now.ToString)
    13. End Sub
    14. Private Sub btnGetProperty_Click(sender As Object, e As EventArgs) Handles btnGetProperty.Click
    15. MessageBox.Show(String.Format("der wert des Property in der Singleton-Klasse ist aktuell: {0}", MySingleton.MyInstance.TestProperty))
    16. End Sub
    17. Private Sub txtSetProperty_Leave(sender As Object, e As EventArgs) Handles txtSetProperty.Leave
    18. MySingleton.MyInstance.TestProperty = txtSetProperty.Text
    19. End Sub
    20. End Class


    Tja, und angehängt das Beispiel als Solution. Ich hoffe jetzt sollte dann alles geklärt sein. Normalerweise mache ich sowas nicht da ich immer versuche den Threadsteller auf den richtigen Weg zu bringen damit dieser etwas lernt und das gelernte auch länger in Erinnerung halten kann, da er ja selbst drauf gekommen ist. Aber das gebe ich in dem Fall auf.

    Schöne Grüße
    Sascha
    Dateien
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nofear23m“ ()

    Danke, Nofear. für Deine Mühe und - den Sprung über den eigenen Schatten. :thumbsup:
    Ich habe Dein Beispiel in meinen Code übersetzt. Damit ist es für mich allerdings nicht getan. Denn ich werde das gute Teil mit Sicherheit öfter benötigen und dann jedesmal durchdenken müssen, was da abläuft. Nur jetzt habe ich ein Beispiel, das funktioniert und tappe nicht mehr völlig im Dunkeln. Du brauchst nicht glauben, daß ich nur C&P mache und das war's dann. Daher war auch Dein ZIP-Anhang gut gemeint, aber ich brauch den nicht. Dein Property MyInstance ist allerdings für mich ein nicht erwarteter Zusatznutzen, da ich mit dem Umgang von Singleton bisher wenig vertraut war und es noch nie selber genutzt habe.
    Egal welche Funktion (Properties, Events), du benötigst überall im Programm im Grunde nur eine zeile Code und muss nichts instanzieren.

    Genau darauf zielte meine ursprüngliche Frage ab. nur das "Wie" kenne ich nicht in jedem Fall.

    Das war eine schwere Geburt und ich bedanke mich herzlichst bei allen Beteiligten. Da ich dies hier nur schreiben kann und gleichzeitig weiß, daß nichts im Leben umsonst ist, werde ich wie schon nach Lösung meiner ersten Frage hier (diese ist jetzt meine 2.) meinen Obulus an VB-Paradise entrichten. Und wenn marcus graefe die Spenderliste aktualisiert hat, wird dies auch jeder verifizieren können.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „claus“ ()

    Hallo @claus

    Gerne

    claus schrieb:

    Daher war auch Dein ZIP-Anhang gut gemeint, aber ich brauch den nicht.

    Damit meinte ich in diesem Fal jetzt gar nicht C&P, ich habe die Solution deshalb drangehängt damit evtl. die Codeteile welche ich gepostet habe innerhalb eines Beispiels besser nachvollzogen werden können. (was gehört wo hin)

    Ausserdem dachte ich mir, du kannst dir das ja irgendwo ablegen, fals du wiedermal vor einem ähnlichen problem stehst, dann hast du hier ein "sauberes" Beispiel, und musste nicht in ein Projekt wo du bereits 238 Klassen hast danach suchen :thumbup:

    Freut mich das dir das geholfen hat.

    Schöne Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    jo, Singleton kann man auch nehmen. Hier eine noch bisserl einfachere Version:

    VB.NET-Quellcode

    1. Public Class MySingleton
    2. Public Shared ReadOnly Instance As new MySingleton ' Ich nenne die einzige Instanz immer "Instance", nicht MyInstance
    3. Public Property TestProperty As String
    4. Public Event MyTestEvent(parameter As String)
    5. Public Sub RaiseTestEvent(param As String)
    6. RaiseEvent MyTestEvent(param)
    7. End Sub
    8. private Sub New() ' der private Konstruktor verhindert, dass die Klasse von ausserhalb instanziert werden kann
    9. End Sub
    10. End Class

    Übrigens bei dir fehlte der private Konstruktor - von daher waren beliebige Instanzen überall erstellbar, und damit kein Singleton

    @Claus: "Singleton" ist auch ein gutes Stichwort für Google.
    Ansonsten deine Darlegung immer noch nicht wasserdicht. Ich nehme an, du wolltest sagen: "... einer Variablen ein Objekt des Datentyps MeineClass zuweisen...".
    Weil einer Variablen kann man keinen Datentyp zuweisen. Man kann Variablen als Datentyp deklarieren, aber zuweisen kann man nur Objekte.
    Du siehst: Das mit den Fachbegriffen ist nicht nur notwendig, sondern auch schwierig, grade weil vieles mit vielem anderen in engem Zusammenhang steht. Das führt leicht zu Verwechslungen, und damit ist Kommunikation eiglich schon fehlgeschlagen.
    Schau nochmal die Begriffe "Konstruktor", "Deklaration", "Instanz" und "Instanzieren". Schau vlt. auch nicht nur in meim Link, weil die dortigen Erklärungen sind teilweise etwas verkürzt. Ich empfehle immer gerne Bücher, die gibts ja auch kostenlos zum Download, gugge etwa auf Entwickler-Ressourcen und Tools, Bücher und WebCasts

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „ErfinderDesRades“ ()

    ErfinderDesRades schrieb:

    Übrigens bei dir fehlte der private Konstruktor

    Stimmt, sorry. Mein Fehler. Danke für die ergänzung. 8|

    Grüßle 8o
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Ja, @Erfinder des Rades
    Ich nehme an, du wolltest sagen: "... einer Variablen ein Objekt des Datentyps MeineClass zuweisen...".

    das wollte ich sagen.
    Danke auch für Deine Empfehlungen, aber ich habe bereits zahlreiche Bücher. Teilweise sind sie auch bei Dir gelistet, teilweise nicht. Über das Buch von Theis Visual Basic 2010 teile ich übrigens Deine Meinung.
    Die Frage ist, denke ich, nicht fehlende Literatur, sondern wie man das gelesene für sich verarbeitet und welches Modell man sich dann im Kopf macht. da entsteht dann eben manchmal Un-sinn oder Wenig-Sinn.
    An meinem (Nicht-IT-)Arbeitsplatz hatte ich vor ~25 Jahren einen Kollegen, der hat immer wenn er Kundendaten oder anderes erfaßt hat, hinterher darüber gesagt, daß er programmiert habe. Es war nicht leicht, ihm den unterschied klar zu machen.

    Übrigens bei dir fehlte der private Konstruktor

    :) Darum begnüge ich mich auch nicht mit C&P. Fehler macht jeder mal und meistens dann, und besonders gern wenn man sie absolut nicht gebrauchen kann.
    @NoFear: noch etwas Kurioses zum Schluß. Aus Deinem zweiten Post hatte ich mir genau den Code überlegt, zu den ich jetzt in Abwandlung Deines ausführlichen Beispiels wieder gekommen. gestern hatte ich das ganze in einem anderen Programmteil als heute. Nur gestern funktionierte das nicht. Heute auf Anhieb. Ich bin schon gespannt, wo ich am Ende den Unterschied finde.

    claus schrieb:

    Ich bin schon gespannt, wo ich am Ende den Unterschied finde.
    Sehr löblich, dass Du Dich nicht zufrieden gibst, wenn es läuft, sondern auch rauskriegen willst, warum es nicht läuft.
    Das ganze C&P-Getue ist wirklich wenig hilfreich.
    Ich mach um solch ein Snippet immer ein kleines separates Projekt, wo ich diesen Code auf Herz und Lunge oder so testen kann. Wenn er dann läuft und meinen gestalterischen Ansprüchen genügt, kommt er in meine Snippet-Sammlung und / oder in das Projekt, wo er arbeiten soll.
    Sonne Snippet-Sammlung ist übrigens was exorbitant Feines.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Sonne Snippet-Sammlung ist übrigens was exorbitant Feines

    Wäre eine feine Idee für ein schönes VS Addon. =O
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##