Hallo zusammen,
ich habe mal eine Grundlegende Frage:
Ich habe in einer Klasse folgende Properties:
public List<ProductConnectionPoint> ProductConnectionPoints { get; set; }
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:
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 😃
Nein. Wozu soll das gut sein?
Riecht fischig nach Designfehler.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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:
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ü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
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 🙂