myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Grundlagen von C# » Klasse soll entscheiden ob sie ein objekt oder ein List<objekt> anlegt
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Klasse soll entscheiden ob sie ein objekt oder ein List<objekt> anlegt

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Saftsack
myCSharp.de-Mitglied

Dabei seit: 11.03.2018
Beiträge: 12


Saftsack ist offline

Klasse soll entscheiden ob sie ein objekt oder ein List<objekt> anlegt

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo zusammen,
ich habe mal eine Grundlegende Frage:
Ich habe in einer Klasse folgende Properties:

C#-Code:
public List<ProductConnectionPoint> ProductConnectionPoints { get; set; }

C#-Code:
ProductConnectionPoint Point

Gibt es eine Möglichkeit, dass die Klasse entscheidet ob sie nun einen einzelnen Punkt anlegt oder eine Liste von Punkten? Quasi ein "überladen von Properties" - ich weiß, dass das nicht möglich ist. Ich denke an sowas hier:

C#-Code:
private _List<ProductConnectionPoint> _ProductConnectionPoints;
public ProductConnectionPoint Point
{

    set {  _ProductConnectionPoints.Add(Point); }
}
public List<ProductConnectionPoint> ProductConnectionPoints
{
    get { return _ProductConnectionPoints; }
    set { _ProductConnectionPoints = ProductConnectionPoints; }
}

Aber ist das sinnig?
Vielen Dank schonmal :)
23.09.2019 15:39 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.953
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Nein. Wozu soll das gut sein?
Riecht fischig nach Designfehler.
23.09.2019 18:00 Beiträge des Benutzers | zu Buddylist hinzufügen
gfoidl gfoidl ist männlich
myCSharp.de-Team

avatar-2894.jpg


Dabei seit: 07.06.2009
Beiträge: 6.653
Entwicklungsumgebung: VS 2019
Herkunft: Waidring


gfoidl ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Saftsack,

sinnvoll ist das meist nicht -- wie Abt schon sagte.
Sowas kenn ich in der praktischen Verwendung nur als Optimierung von Caches, wenn i.d.R. nur ein Element gecached werden soll.

Anhand deiner Klassen könnte das z.B. so ausschauen:

C#-Code:
public class Foo
{
    private ProductConnectionPoint _first;
    private List<ProductConnectionPoint> _points = new List<ProductConnectionPoint>();

    public void Add(ProductConnectionPoint point)
    {
        if (_first == null)
        {
            _first = point;
        }
        else
        {
            _points.Add(point);
        }
    }

    public IEnumerable<ProductConnectionPoint> GetPoints()
    {
        if (_first == null) yield break;

        yield return _first;

        foreach (ProductConnectionPoint point in _points)
            yield return point;
    }
}

public class ProductConnectionPoint { }

mfG Gü
23.09.2019 18:35 Beiträge des Benutzers | zu Buddylist hinzufügen
Saftsack
myCSharp.de-Mitglied

Dabei seit: 11.03.2018
Beiträge: 12

Themenstarter Thema begonnen von Saftsack

Saftsack ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Vielen Dank für eure Antworten. Ich habe mir schon gedacht, dass das keine gute Idee war - da ich gerade versuche mir C# selbst beizubringen anhand eines konkreten Beispieles, bin ich insbesondere im Hinblick auf sauberes Design sehr dankbar für gute Ratschläge smile
23.09.2019 20:01 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 9 Monate.
Der letzte Beitrag ist älter als 9 Monate.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 10.07.2020 07:32