Announcement

Collapse
No announcement yet.

structure leeren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • structure leeren

    Ich suche eine Möglichkeit ein structure, welche wiederum aus mehreren untergeordneten structure besteht, zu leeren.
    Es soll so sein, dass die Werte der enthaltenen untergeordneten structure alle auf Nothing gesetzt werden und nicht der Wert der obersten structure einfach Nothing ist.

    z.B.

    structure structGesamt
    Dim A() As structA
    Dim B As structB
    '...
    End structure

  • #2
    Warum erzeugst Du nicht einfach ein neues?

    Comment


    • #3
      Ein struct kann nicht nothing sein. Das ist ja gerade eine der zentralen Definitionen eines Wertetyps das er immer ein Wert hat. Wenn man einen nullable Wert will müsste man ihn mit Nullable(Of T) erst kapseln und nothing vorgaukeln.

      Die Frage impliziert die Gegenfrage warum du struct benutzt wenn du eigentlich Klassenverhalten(Referenztyp) erwartest?

      Comment


      • #4
        Ich denke er will nicht die Referenz auf null setzen, sondern alle Werte innerhalb des struct. Das geht aber nur mit einer Funktion oder sowas. Oder einfach eine neue erzeugen

        Comment


        • #5
          Ich denke er will nicht die Referenz auf null setzen, sondern alle Werte innerhalb des struct.
          Werte können nicht nothing sein auch nicht wenn diese Werte in einem struct stecken . Du meinst vielleicht, das sv00010 Referenzen meint die in einem struct stecken, das diese nicht nothing sein sollen. Diesen Gedanken finde ich aber gelinde gesagt gewagt. Jemand der structs schachtelt wird das sehr wahrscheinlich nicht tun um dann darin Referenzen auf Klassen zu verwalten. Obwohl ... Leute machen schon mal merkwürdige Sachen. Ich hoffe auf Aufklärung

          Comment


          • #6
            Ich denke sein Problem ist nicht mal dass die alle leer oder nothing sein sollen, sondern sie sollen halt wieder auf den Ausgangszustand zurückgesetzt werden. Int ->0, String -> Empty usw.

            Comment


            • #7
              Originally posted by fanderlf View Post
              Ich denke sein Problem ist nicht mal dass die alle leer oder nothing sein sollen, sondern sie sollen halt wieder auf den Ausgangszustand zurückgesetzt werden. Int ->0, String -> Empty usw.
              Ganz genau.
              Ich möchte eine Routine erstellen, welche ich für das leeren von allen möglichen Structures verwenden kann. Ich will nicht für jede Structure-Art eine neue Routine schreiben müssen.

              Comment


              • #8
                Nochmal meine Frage... Warum musst Du eine vorhandene leeren? Du kannst Dir doch einfach eine neue erzeugen?

                Comment


                • #9
                  Ich möchte eine Routine erstellen, welche ich für das leeren von allen möglichen Structures verwenden kann. Ich will nicht für jede Structure-Art eine neue Routine schreiben müssen.
                  Hast du mal ein vorher-nachher Beispiel? Vielleicht erkennt man dann dein Vorhaben besser und warum du nicht einfach ein neues struct erzeugen willst/kannst.

                  Comment


                  • #10
                    Hallo,

                    Hast du mal ein vorher-nachher Beispiel?
                    Das ist gar nicht nötig. Eine Struct ist ein Werttyp und auch wenn dem etwas neues zugewiesen wird so wird implizit ein neuer erstellt. Somit erübrigt sich die Frage

                    Aber wie schon gefragt wurde: Warum keinen neuen erstellen?

                    Das wäre übrigens auch bei Referenztypen das Einfachste.


                    mfG Gü
                    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                    Comment


                    • #11
                      Das ist gar nicht nötig. Eine Struct ist ein Werttyp und auch wenn dem etwas neues zugewiesen wird so wird implizit ein neuer erstellt. Somit erübrigt sich die Frage
                      Du hast den Kniff meiner Frage nicht mitbekommen Beim erstellen des Beispiels wäre ihm das aufgefallen. Oder es wäre ihm Alternativ aufgefallen das er eigentlich in seinem struct Referenztypen versteckt hat die er automatisch instanziieren will(dann könnte ich zumindest näherungsweise sein Problem verstehen) und eigentlich keine Problem mit gekapselten structs.

                      Comment


                      • #12
                        Hallo Ralf,

                        Du hast den Kniff meiner Frage nicht mitbekommen
                        Nein, den hab ich nicht mitbekommen - sorry dass ich die "Pointe" zerstört habe


                        mfG Gü
                        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                        Comment


                        • #13
                          Originally posted by Ralf Jansen View Post
                          Hast du mal ein vorher-nachher Beispiel? Vielleicht erkennt man dann dein Vorhaben besser und warum du nicht einfach ein neues struct erzeugen willst/kannst.
                          Function Clear_struct(ByRef ObjectIN As Object)
                          '...
                          End Function

                          Es muss ein Object als Übergabe sein, weil es ja für alle möglichen structs sein soll.

                          Comment


                          • #14
                            So kommen wir nicht weiter. Aus den antworten solltest du mittlerweile erkannt haben das wir vermuten das du irgendwas missverstanden hast was es bedeutet structs zu verwenden.

                            Darum beantworte bitte erst die an dich gestellten Fragen.

                            1. Warum structs und nicht Klassen.
                            2. Warum nicht einfach einen neuen struct erzeugen anstatt einen bisherigen zu leeren.
                            3. Wenn nach der Beantwortung von 1. und 2., wieder allen Erwartungen, noch ein Sinn deines Vorgehens übrig bleibt zeig uns ein gültiges Beispiel eines structs wo das leeren im Gegensatz zum neu erstellen nötig ist.

                            Comment

                            Working...
                            X