Strict on - Die ersten Versuche.

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 67 Antworten in diesem Thema. Der letzte Beitrag () ist von woeh.

    also es geht langsam voran mit meiner umschreiberei...es macht mir aber immer noch probleme
    immer von 1-basierend auf 0-basierend zu rechnen...
    vom prinzip her muß ich funktion für funktion umschreiben und testen
    und das dauert eben, bis mir das in fleisch und blut übergegangen ist.

    ich hätte da ne einfache frage, bei der ich aber im mom. nicht weiterkomme...
    wie schreibe ich folgendes in :net

    Visual Basic-Quellcode

    1. Mid(txt, p, 1) = Mid(txt, p, 1).ToUpper


    mit Substring gehts nicht und mit .Chars gehts auch net.
    Mit Substring:

    VB.NET-Quellcode

    1. txt.Substring(p, 1).ToUpper()

    mit Char:

    VB.NET-Quellcode

    1. Char.ToUpper(txt(p))

    wobei Zweiteres vorzuziehen ist, da es auf Basis von Chars arbeitet, die für einzelne Buchstaben vorgesehen sind. Wenn du es als String benötigst, kannst du ToString() verwenden, um es zurückzukonvertieren.

    Bei jeder Manipulation eines Strings (der so nicht vorher schon einmal existiert hat, ist etwas komplizierter, als ich es jetzt darstelle) wird alles kopiert, was benötigt wird, d.h. wenn du z.B. in einer Schleife mehrere Strings aneinanderhängst, wird jedes mal der alte kopiert und an den neuen gehängt, was teuer und langsam ist. So ist z.B. Substring eher nicht dazu zu verwenden, einzelne Chars zu extrahieren. Besser Chars, StringBuilder, String.Join, String.Concat, usw. verwenden.

    Viele Grüße
    ~blaze~
    Das kommt darauf an, was am Programm selbst verbesserungswürdig ist. So allgemein kann man die Frage eher nicht beantworten.
    Stilistisch würde ich sagen, passt das Programm soweit, wenn es funktioniert und du DirectCast bzw. CType verwendet hast, weißt, was CByte, usw. bewirken. Damit wäre das Thema Option Strict On an sich ja gegessen oder mir würde zumindest dazu nichts mehr einfallen.

    Viele Grüße
    ~blaze~
    On Error hat Parallelen zu einem sehr umfassenden Try-Catch-Block. Falsch eingesetzt ist beides Mus => nicht einfach On Error durch ein Try-Catch-Konstrukt ersetzen und zum nächsten Thema übergehen. Versuche herauszufinden, in welchen wenigen Zeilen ein Fehler auftreten kann, der im Voraus mit vergleichsweise einfachen Codezeilen nicht abzuwehren ist. Schließe diese Zeilen in ein Try-Catch-Block ein und versuche bei der Art der aufgefangenen Exceptions so präzise wie möglich zu sein: Es heißt ja häufig Catch ex As Exception. Versuche da sehr konkret zu sein. Diuretisches Beispiel: Catch ex As IO.FileNotFoundException, wenn der Verdacht besteht, dass ein User Dein Programm mit einem nichtexistenten Dateipfad füttert. So kannst Du später mal darauf zurückkommen, wenn Dir ein Weg einfällt, dem Problem sehr konkret an der kritischen Stellen besser zu begegnen. Und Du wirst dann eben auch wissen: Mit welchem Problem hast Du an dieser Codestelle ganz konkret gerechnet. Und wie hast Du versucht dem Problem zu diesem Zeitpunkt zu begegnen. Programmabbruch? Retry? Setzen einer Defaulteinstellung?
    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.