Verschachtelte Klassen in mehrer Dateien aufteilen

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

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Verschachtelte Klassen in mehrer Dateien aufteilen

    Hallo,
    ich werde zu meinem Problem leider nicht fündig! Ich habe ein meinem Beispiel eine Klasse Project die zwei zusätzliche Klassen beinhaltet. Siehe Beispiel. Da diese Klassen sehr Umfangreich geworden sind, suche ich eine Möglichkeit diese in separate Dateien zu trennen. Ich möchte aber weiterhin die gleiche Funktionalität habe. Geht das! Ich dachte da an so was wie INCLUDE.

    Das Beispiel:

    VB.NET-Quellcode

    1. ​Imports System
    2. Imports System.ComponentModel
    3. Public Class Project
    4. Public Property ProjectName As String
    5. Public Property PorjectDescription As String
    6. Public Property Tables As New BindingList(Of Project.Table)
    7. Public Property Forms As New BindingList(Of Project.Form)
    8. Public Class Table
    9. Public Property Tablename As String
    10. Public Property TableDescription As String
    11. Public Property Fields As New BindingList(Of Project.Table.Field)
    12. Public Class Field
    13. Public Property FieldName As String
    14. End Class
    15. End Class
    16. Public Class Form
    17. Public Property FormName As String
    18. Public Property FormDescription As String
    19. Public Property SourceTableName As String
    20. End Class
    21. End Class


    Und so dachte ich könnte es eventuell aussehen!

    VB.NET-Quellcode

    1. ​Imports System
    2. Imports System.ComponentModel
    3. Public Class Project
    4. Public Property ProjectName As String
    5. Public Property PorjectDescription As String
    6. Public Property Tables As New BindingList(Of Project.Table)
    7. Public Property Forms As New BindingList(Of Project.Form)
    8. Include "Table.vb"
    9. End Class


    Das das so nicht geht ist mir klar! Aber ich finde den passenden Befehl dazu nicht, bzw. ich fürchte fast, das es generell nicht geht! Denn ich möchte weiterhin Variablen so definieren wie im nachfolgenden Beispiel um eine bessere Lesbarkeit des Codes zu erreichen.

    VB.NET-Quellcode

    1. ​Dim objTable As New Project.Table


    Hoffe ich konnte mein Problem gut genug beschreiben.
    Für jede Anregung, Hilfe bin ich dankbar!

    Gruß
    Christian
    Hallo

    Jede Klasse in eine eigene Datei welche genauso bennant ist wie die Klasse.
    Weiters dann mit Namespaces Arbeiten: docs.microsoft.com/de-de/dotne…gram-structure/namespaces

    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. ##

    Klasse als partielle Klasse definieren und dann kannst du diese in verschiedene Files splitten.
    Grundsätzlich wird eine Struktur wie die deine aber vorzugsweise über namespaces gelöst.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    bahnski schrieb:

    eine Klasse Project die zwei zusätzliche Klassen beinhaltet

    VB.NET-Quellcode

    1. Public Class Project
    2. Public Property Tables As New BindingList(Of Project.Table)
    3. Public Property Forms As New BindingList(Of Project.Form)
    4. Public Class Table
    5. Public Property Fields As New BindingList(Of Project.Table.Field)
    6. Public Class Field
    7. End Class
    8. End Class
    9. Public Class Form
    10. End Class
    11. End Class

    Warum diese Verschachtelungen?
    Warum dürfen die Klassen Table, Form und Field nicht in derselben Hierarchiestufe wie Project stehen?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    @petaod Jou.
    @bahnski Eine Public Class in einer anderen Public Class zu halten ist ein NoGo :!:
    Eine Private Class in einer Public Class ist sinnvoll, wenn sie sehr kurz ist.
    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!