Eigene Schleifen erstellen oder definieren

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von Wincrash.

    Eigene Schleifen erstellen oder definieren

    Hi Leute,

    ich hab mich heut in goolge und anderen Foren totgegooglet bzw. totgesucht,
    aber nichts zu dem Thema gefunden:
    Gibt es die Möglichkeit, eigene Schleifen zu erstellen - ich meine damit:
    Beispeiel:

    Eine eigene For-Next-Schleife, welche immer 2er-Steps machen würde
    - Jaja, ich weiß selbst, dass das so geht:

    VB.NET-Quellcode

    1. For i = 0 To 100 Step 2
    2. 'Code
    3. Next


    Aber ich möchte so etwas selbst erstellen, d.h. die Bezeichner heißen nicht
    "For" und "Next", sondern "Start" und "Stop" ;)

    Ich hoffe, jeder weiß, was ich damit meine,
    wincrash

    P.S.: Mir geht es nur ums Prinzip, wie man so Schleifen erstellt
    (\_/) Das ist Hase.
    (O.o) Kopiere Hase in deine Signatur
    (> <) und hilf ihm so auf seinem Weg zur Weltherrschaft.

    Wincrash schrieb:

    ich hab mich heut in goolge und anderen Foren totgegooglet bzw. totgesucht
    Glücklicherweise lebst Du noch. :thumbsup:
    Sieh mal hier, was die MSDN zu Schleifen schreibt.
    Start und Stop sind in meinem unmaßgeblichen Sprachverständnis eher der Beginn und das Ende von etwas und haben mit Schleifen (abgesehen bei Schuhen und solch) nix zu tun.
    Aber ich kann mich ja auch irren.
    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 nehme nicht an, dass das geht, da es sich um feste Bestandteile von VB handelt, die nicht aus irgendeinem Namespace geerbt werden.

    @RodFromGermany: Ich glaube, er meinte Start und Stop eher als Beispiel. Es könnte auch Apfel und Banane heißen. Auch wenn ich nicht weiß, in welchem Kontext er das unterbringen will, da man imo alle schleifen in den vorhandenen for & loop unterbringen kann.
    @BjöNi: Ist mir klar, leider hat er das nicht so geschrieben.
    @Wincrash: Kannst Du inzwischen Dein Problem etwas präziser formulieren?
    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!
    Jop; "Start" und "Stop" waren ein blödes Beispiel
    "Banane" und "Apfel" sind besser ;)

    Präziser:

    Ich möchhte eine eigene Schleife generieren,
    welche wie z.B. als For-Next-Schleife in 2er-
    Schritten dient. Heißen soll sie:

    VB.NET-Quellcode

    1. ZweierStep
    2. 'code
    3. End ZweierStep


    Wie bereits erwähnt: Ich weiß selbst, wie man
    For-Next-Schleifen in 2er-Schritten programmiert;
    mir geht es nur ums Prinzip der Erstellung von eigenen
    Schleifen

    wincrash
    (\_/) Das ist Hase.
    (O.o) Kopiere Hase in deine Signatur
    (> <) und hilf ihm so auf seinem Weg zur Weltherrschaft.
    Und was soll an diesen anders sein als an "gewöhnlichen" .NET-Schleifen mit For / For Each / Do / While / Parallel.For / ... :?:
    Ansonsten

    mikeb69 schrieb:

    Der Sinn hinter der Geschichte wird halt eher gegen 0 gehen.
    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!
    Jetzt ist noch nichts anders;
    es geht mir ums Prinzip, RodFromGermany :!:
    Ich bin mir sicher, dass ich es irgendwann mal
    noch brauchen kann,

    wincrash
    (\_/) Das ist Hase.
    (O.o) Kopiere Hase in deine Signatur
    (> <) und hilf ihm so auf seinem Weg zur Weltherrschaft.

    Wincrash schrieb:

    es geht mir ums Prinzip

    Es geht nicht. Du kannst keine eigenen Schlüsselworte definieren, da der VB-Compiler diese nicht berücksichtigt.

    Du kannst aber einen Präprozessor schreiben. Das sieht dann so aus:

    VB.NET-Quellcode

    1. Dim x As Int32 = 3
    2. $MyLoop x, 5, 1
    3. 'Dein Code
    4. $End MyLoop


    Dein Programm ersetzt dann "$MyLoop x, 5, 1" z.B. durch folgendes:

    VB.NET-Quellcode

    1. For __var = x To 5 Step 1
    2. 'Dein Code
    3. Next


    Wenn du deinen Präprozessor noch als Pre-Build-Ereignis einträgst, wird der Code insgesamt sogar korrekt verarbeitet. Einziges Problem: Intellisense wird jedes Konstrukt anmeckern, was nicht zu VB gehört. Das dürfte die verwendung sehr unangenehm machen.

    Fazit: Als Proof-Of-Concept ganz ok, praktisch aber sinnlos.
    Gruß
    hal2000
    Ok Vielen Dank an alle,
    wincrash


    P.S.:
    Achja - weiß jemand, wie man neue Wertdatentypen erstellt,
    z.B.: einen Wertdatentyp namens "Hexadecimal", welcher nur
    werte zwischen 0 bis 9 und A bis F zulässt?
    Ich möchte das aber nicht mit Enum oder Structure machen.

    Danke,
    wincrash
    (\_/) Das ist Hase.
    (O.o) Kopiere Hase in deine Signatur
    (> <) und hilf ihm so auf seinem Weg zur Weltherrschaft.
    Na gut dann halt eben so formuliert:
    Wie erstellt man einen Wertdatentyp, z.B.
    einen Wertdatentyp namens "Number1to100",
    welcher wie "Byte", nur dass er den Bereich von
    0 bis 100 abdeckt?

    danke,
    wincrash

    P.S.: Ums Rad kümmert sich der hier :D
    (\_/) Das ist Hase.
    (O.o) Kopiere Hase in deine Signatur
    (> <) und hilf ihm so auf seinem Weg zur Weltherrschaft.