Laufwerke im Listview

  • VB.NET

Es gibt 37 Antworten in diesem Thema. Der letzte Beitrag () ist von Amelie.

    Zwei Sorten Kommentare sind nicht sinnvoll:

    Amelie schrieb:

    VB.NET-Quellcode

    1. ' Methode zum Aufrufen der Laufwerkliste
    2. ''' <summary>Legt im Treeview Nodes an mit Laufwerks-Informationen</summary>
    Den Inhalt vom XML-Kommentar Legt im Treeview Nodes an mit Laufwerks-Informationen bekommst Du angezeigt, wenn Du den Aufruf von ListDrives() hoverst. Dein Kommentar in Zeile 2 verwirrt nur, da die Liste nicht aufgerufen, sondern angelegt wird.
    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!
    Jo, Code-Lesbarkeit, mit oder (lieber noch) ohne Kommentation ist eine hohe Kunst.
    Mühsam, braucht Zeit, aber es lohnt sich enorm.
    Nachträgliches Kommentieren bringt mich dazu, die Architektur neu zu überdenken - oft hat mich das zu fundamentalen Verbesserungen geführt.

    Dein "Kompromiss" gefällt mir garnet.
    Zeile #2: Das alte Problem: Der Kommentar enthält keine Information. (bzw. sogar Falsch-Information/Unsinn: Es gibt ja garkeine "Laufwerkliste" - zumindest nicht in dieser Klasse!)
    Keine Kompromisse - weg mit Zeile#2 !

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

    Ich meinte nicht den Text sonder die Art.

    XML-Quellcode

    1. ' Methode ....balbalbla einfacher Kommentar
    2. ''' <summary>blablabla etwas deatlierter ...</summary>
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:
    Das Kommentieren mit <summary> und Co. ist dann sinnvoll, wenn man diese Daten innerhalb von VS sehen will, weil man das kommentierte Etwas nutzt:

    Braucht man sowas nicht, weil man einfach nur Infos bei Lesen des eigenen Quellcodes will oder meint, sowas zu brauchen, dann einen normalen Kommentar verwenden. Oder besser, wie EdR richtig meint: Weglassen, falls redundant oder Code umbauen, wenn der Kommentar (vermeintlich) den zu komplexen/komplizierten Code erklärt, denn dann liegt meist ein Programmierstilfehler vor.
    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.

    ErfinderDesRades schrieb:

    Jo, Code-Lesbarkeit, mit oder (lieber noch) ohne Kommentation ist eine hohe Kunst.
    Insbesondere, wenn in einem halben oder einem ganzen Jahr neue Anforderungen implementiert werden müssen...
    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!

    Amelie schrieb:

    So etwas meinst du, gelle.

    Ja, genau.

    Amelie schrieb:

    Die <summary> fand ich jetzt hier ein wenig viel aber eigentlich haste ja Recht, sollte mir ja selber helfen alte Codes wieder zu lesen.

    Solange du es nicht übertreibst, helfen dir die Kommentare langfristig.

    Wie @ErfinderDesRades und @RodFromGermany aber bereits gesagt haben: müll deinen Code nicht damit zu.
    Komm nicht in die Verlegenheit, alles um jeden Preis bis ins tiefste Detail zu dokumentieren. Einen großen Teil sollte der Code schon selber machen.

    Aber ich bin auch der Meinung, dass es schwer ist "zu viel" Doku zu schreiben.

    Sachen, die ich z.B. selten oder gar nicht mit Doku-Kommentaren dekoriere, sind private Member. Da reicht ein einfacher Kommentar, wenn nicht sowieso schon aus dem Code hervorgeht, was das Ding eigentlich macht.

    Hier ein Beispiel aus eines meiner Projekte.

    C#-Quellcode

    1. /// <summary>
    2. /// Gets the next option in the list.
    3. /// </summary>
    4. /// <param name="outOptArg">Out var; the argument for the option (if applicable).</param>
    5. /// <returns>The next option.</returns>
    6. /// <exception cref="ParseException">If ignoring errors is disabled (default) and an error occurs.</exception>
    7. public int GetNextOpt(out string? outOptArg) {
    8. // ...
    9. }

    Kurz und knackig; einfach zu verstehen.

    Es hängt aber natürlich auch immer vom Projekt ab, wie viel Doku angebracht ist. Gerade wenn dein Programm von anderen gelesen, oder deine Lib von anderen verwendet werden soll, ist mehr Doku immer besser. Damit vermeidest du, dass komische Fragen aufkommen :)
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)
    Moin moin

    Ich denke, das ich mein Maß an Kommentaren finden werde. Wenn es dann für den einen oder anderen zuviel des Guten ist, weiß ich das ich kürzen muss. ;)

    Heute muss ich mich mit 3 Classes beschäftigen die sich untereinander austauschen und Async-Methoden aufrufen, die dann per klick auch abgebrochen werden können.
    Das finde ich immer etwas kompliziert. :huh:
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:
    @VaporiZed

    Moin moin

    Ich beziehe mich auf deinen Beitrag #15 mit dem Anzeigen der <summary>.
    Muss man da etwas in VS einstellen, denn bei mir VS-2015 wird das so nicht angezeigt. Siehe Bilder.
    Bilder
    • anzeige-1.jpg

      256,72 kB, 766×319, 18 mal angesehen
    • anzeige-2.jpg

      97,28 kB, 655×202, 19 mal angesehen
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:
    @Amelie Es gibt da eine Einstellung:
    Projekt => Eigenschaften => Kompilieren
    => XML-Dokumentationsdatei generieren
    Mach da mal einen Haken rein.
    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!
    Du bekommst die nicht vorhandene summary des Konstruktors (Sub New) angezeigt ;) , weil Deine Zeile das New enthält. Die Codezeile Dim MeinDriveManager As DriveManager, also ohne New würde zwar nicht machen, was Du codetechnisch willst, aber die Beschreibung käme, wenn Du mit der Maus auf DriveManager zeigst.
    Die von Dir erwartete Beschreibung kommt, wenn Du schreibst: … As New DriveM und Dir IntelliSense Vorschläge für Klassen mit entsprechendem Namen anzeigt. Sieh Dir an, was ich als Code im folgenden Bild erst geschrieben habe, damit ich den von Dir gewünschten Text bekomme. Ich bin also noch nicht fertig mit der Codezeile, sondern hatte nur geschrieben: Dim asd As New Dri. Wenn die Zeile ausgeschrieben ist, wird die Klassensummary nicht mehr angezeigt.
    Allerdings ist Deine Beschreibung redundant, da managen = verwalten
    Bilder
    • Summary.png

      21,34 kB, 693×290, 24 mal angesehen
    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.

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

    @VaporiZed @RodFromGermany

    Das Häckchen habe ich drin.
    Und ja, wenn ich noch beim schreiben bin, wird mir das angezeigt. Ich dachte das <summary> würde dann immer angezeigt, damit man gleich weiß was die Class etc.. beschreibt.
    Wäre für mich nun wieder Logisch. :whistling:
    Habe nun auch mal in den Einstellungen gesucht aber nichts passendes gefunden.


    EDIT 13:00
    Neues Project angelegt usw...
    Seltsamerweise, wird das in anderen Classes angezeigt, nur auf dem "frmMain" nicht...
    Bilder
    • anzeige-3.jpg

      151,43 kB, 756×246, 17 mal angesehen
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:

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

    Was für Code steht denn in frmMain? Irgendwas As New DriveManager, also mit New, oder nur As DriveManager?
    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.
    @VaporiZed

    So stehts in den Klassen.
    Wenn es nicht geht ist auch nicht so tragisch.

    VB.NET-Quellcode

    1. Public Class frmMain
    2. ' Class Drive-Manager
    3. Private WithEvents driveManager As New DriveManager() ' Summary nicht zu sehen!!
    4. Private WithEvents fileWriterManager As New FileWriterManager(driveManager)
    5. Public Sub New()
    6. InitializeComponent()
    7. End Sub
    8. '....
    9. End Class
    10. Public Class FileWriterManager
    11. ' Manager für Laufwerksinformationen
    12. Private ReadOnly driveManager As DriveManager ' Summary zu sehen!!
    13. ' Konstruktor, um die Abhängigkeit zu erhalten
    14. Public Sub New(manager As DriveManager)
    15. driveManager = manager
    16. End Sub
    17. '....
    18. End Class
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:

    Amelie schrieb:

    Private WithEvents driveManager As New DriveManager() ' Summary nicht zu sehen!!
    :huh: Lies Dir bitte nochmal genau Post#31 durch. Da steht haargenau mit Erklärung drin, warum das so ist. Wenn Du Fragen dazu hast, bitte stell sie. Vielleicht muss ich anders erklären, aber mehr Informationen werden dann nicht drin sein. Kurz gesagt: In Deiner Codezeile würde nur eine Summary für die Methode New (diese Klassenmethode nennt sich auch »Konstruktor«) erscheinen. Da Du für diese Methode keine Summary definiert hast, sondern nur für die Klasse im Gesamten, wird auch keine Summary angezeigt.
    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.
    @VaporiZed Mach doch einfach ein Beispiel. ;)
    @Amelie Ganz einfach:

    VB.NET-Quellcode

    1. ''' <summary>
    2. ''' Klasse, die was tut
    3. ''' </summary>
    4. Public Class DriveManager
    5. ''' <summary>
    6. ''' das ist der Konstruktor
    7. ''' </summary>
    8. Public Sub New()
    9. End Sub
    10. 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!
    Ich habe quasi Deinen Code mal als Resultatbild ergänzt. Hoffentlich ist es @Amelie jetzt klar, wo der Hase sich in den Gewürzen versteckt.
    Bilder
    • Ergänzung.png

      15,37 kB, 392×296, 18 mal angesehen
    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.
    @VaporiZed @RodFromGermany

    Hab erst jetzt Eure Beiträge gelesen.
    Habe es hinbekommen und JA nun kapiert wie das mit der Class und dem Konstruktor bei den <summary> geht. :) :thumbsup:
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh: