Klasse einen Rypgabewert geben

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von sonne75.

    Klasse einen Rypgabewert geben

    Hallo Community,

    ich hoffe, das mir jemand bei meinem Problem helfen kann...

    Ich habe eine Klasse "Früchte" der ich das Interface "IList (Of Früchte)" implementiere. nun möchte ich die Klasse mit der Datensammlung (mein beispiel ein Array) verknüpfen

    Beispiel:

    Visual Basic Quellcode

    VB.NET-Quellcode

    1. Public Class Früchte
    2. Implements IList(Of Früchte)
    3. Private cFrüchte as Of Früchte() ' Array von Früchten (Datensammlung)
    4. Public Property Früchte as Früchte() ' Zugriff
    5. Get
    6. Return Me.cFrüchte
    7. End Get
    8. Set(ByVal value As String)
    9. Me.cFrüchte = value
    10. End Set
    11. End Property
    12. [...] ' IList Funktionen u.s.w.
    13. End Class
    14. Public Class Anwendung
    15. Public Sub xy()
    16. Dim früchte as new Früchte
    17. früchte.add(new Fruch([...]))
    18. DataTable.Datasource = früchte ' <-- Ich möchte das ich direkt mit der Variable auf die Property zugreife (oder ähnliches), wie in einer richtigen Liste
    19. ' DataTable.Datasource = früchte.Früchte ' Nicht so
    20. früchte = andereFrüchteListe
    21. End Sub
    22. End Class
    Mit den derzeitigen möglichektein funktioniert dies nur so:

    VB.NET-Quellcode

    1. DataTable.Datasource = früchte.Früchte


    Ich möchte dies aber OHNE dem aufruf der Property über dem Punkt operator

    VB.NET-Quellcode

    1. Dim früchte as new Früchte
    2. früchte.add(new Fruch([...]))
    3. DataTable.Datasource = früchte

    sonne75 schrieb:

    Und wo liegt dein Problem?
    @Benutzer0000: Dein Code kompiliert nicht.
    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!

    VB.NET-Quellcode

    1. Public Class Früchte
    2. Implements IList(Of Frucht)
    3. Private arrayVonMeinenFrüchten as Früchte() ' Array von Früchten (Datensammlung)
    4. Public Readonly Property PropertyVonFrüchte as Früchte() ' Zugriff
    5. Get
    6. Return Me.arrayVonMeinenFrüchten
    7. End Get
    8. End Property
    9. [...] ' IList Funktionen u.s.w.
    10. End Class
    11. Public Class Anwendung
    12. [...]
    13. Public Sub xy()
    14. Dim instanzVonFrüchte as new Früchte
    15. instanzVonFrüchte.add(new Fruch([...]))
    16. DataTable.Datasource = instanzVonFrüchte ' <-- Ich möchte das ich direkt mit der Variable auf die Property zugreife (oder ähnliches), wie in einer richtigen Liste
    17. ' DataTable.Datasource = instanzVonFrüchte.PropertyVonFrüchte ' Nicht so
    18. früchte = andereFrüchteListe
    19. End Sub
    20. [...]
    21. End Class


    !!! Die klasse "Früchte" soll eine Liste sein, die mit den Objekten "Frucht" gefüllt wird ...

    sonne75 schrieb:


    Und meine Frage zum Syntax hast du auch nicht beantwortet: "As Of" - gibt es sowas?

    Das wer nur vertippt, davor stand dort eine eine List (Of T)
    Habs beim erstenmal gekonnt überlesen, sorry

    RodFromGermany schrieb:


    @Benutzer0000: Dein Code kompiliert nicht.

    Der Code kann auch nicht kompiliert werden ... Ich habe nur einen teil hier hinein geschrieben (ausm kopf heraus)
    wie z.b.: die klasse "Frucht" habe ich noch nicht definiert oder die Datatable habe ich auch nicht initialisiert (hab gedacht, das man sich sowas vorstellen kann ...
    Muss das

    VB.NET-Quellcode

    1. Private arrayVonMeinenFrüchten as Früchte() ' Array von Früchten (Datensammlung)
    2. Public Readonly Property PropertyVonFrüchte as Früchte() ' Zugriff


    nicht eher so lauten:

    VB.NET-Quellcode

    1. Private arrayVonMeinenFrüchten() as Früchte ' Array von Früchten (Datensammlung)
    2. Public Readonly Property PropertyVonFrüchte() as Früchte() ' Zugriff

    Benutzer0000 schrieb:

    Das wer nur vertippt
    Aber Du erwartest von uns qualifizierte Hilfe. :thumbdown:
    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!

    RodFromGermany schrieb:

    Benutzer0000 schrieb:

    Das wer nur vertippt
    Aber Du erwartest von uns qualifizierte Hilfe. :thumbdown:


    Tut mir leid für einen kleinen TippFehler den ich mal gemacht habe. Ich wusste garnicht, das man hier gleich auf den Pranger gestllt wird, wenn man einen kleinen Tippfehler produziert ... :/
    BTW: Beiträge wie deiner werden in anderen Foren als Spam angesehen (Sehe ich leider genauso, denn es gehört nicht zum Thema)


    Um mal hier ein kleinwenig aufzuräumen und mal etwas Produktives in diesen Topic zu bringen ...

    Ich habe das Schlüsselwort "Default"(jedenfalls die bedeutung) gefunden, doch bin ich noch nicht ganz zufrieden damit, den dieses verlangt von mir das ich der Property einen Parameter gebe (was ich eig. nicht brauche)

    Benutzer0000 schrieb:

    denn es gehört nicht zum Thema
    Dich darauf hinzuweisen, Dein Problem klar darzulegen, gehört aber zu 100% zum Thema.
    Dein Problem ist nicht klar nachvollziehbar.
    Die nicht implementierten Interface-Prozeduren sind nicht das Problem.
    Stell qualifizierte Fragen, wenn Du qualifizierte Antworten erwartest.

    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!

    Benutzer0000 schrieb:

    ... vielen Dank für eure Hilfe ... nicht.

    unnötig
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    VincentTB schrieb:


    Würdest du die Lösung mit dem Rest der Welt teilen? Mich würde auch interessieren, wie du ohne Parameter die Default Eigenschaft gesetzt hast. Oder hast du etwas anderes genommen?

    Ein Mensch der versteht was für ein Problem ich hatte =)
    Sehr gerne ... auch wenn ich diese Information nicht gerne mit den anderen 3 Personen in diesem Topic teilen möchte (aus gewissen Gründen).
    Ich nehme hier mein "Früchte" Beispiel ... um die anderen beiden Kameraden mit "Früchten" zu verwirren ^^

    Im Endeffekt ist die Lösung des Problems recht einfach.
    Man muss der GetEnumerator Funktion die über die IList kommt (funktioniert sicherlich auch mit allen anderen Interfaces des Collection Namespaces) den Enumerator des Arrays zurückgeben. Dann funktioniert dies ganz von alleine. Hierfür kann das Array ruhig auf Private sein und eine Property benötigst du auch nicht mehr.

    VB.NET-Quellcode

    1. Public Function GetEnumerator() As Collections.IEnumerator Implements Collections.IEnumerable.GetEnumerator
    2. [Weiterer Code]
    3. Return _Früchte.GetEnumerator
    4. End Function


    MFG
    Wie alt bist du, 15? ;)


    ErfinderDesRades - Moderator - Notiz: Schade, dass weder der TE auf Sticheleien verzichten kann, noch die anderen auf Antworten auf Sticheleien
    --> So muß der Thread leider geschlossen werden

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