Hallo Zusammen,
ich habe mal eine kurze frage zu
ObservableCollection<myname> liste = new ObservableCollection<myname>();
ich benutze diese Collecion viel in meiner WPF. Jetzt ist meine ansicht fast fertig und es Funktioniert alles. jetzt hat ein Kollege von mir, warum auch immer, ein Code Cleaner über das Programm laufen lassen.......
jetzt steht das aber nicht mehr so da
ObservableCollection<myname> liste = new ObservableCollection<myname>();
sondern so
ObservableCollection<myname> liste = [];
ich konnte so nicht dazu finden ist das zweite richtig? oder kann das zu Problemen führen?
Ja, das ist äquivalent und seit C# 12 (.NET 8) verfügbar, s.a. Sammlungsausdrücke (auf engl. "collection expressions").
Der von deinem Kollegen verwendete Code Cleaner bezieht sich auf die Stilregel Auflistungsinitialisierer oder Sammlungsausdrücke verwenden (IDE0028).
Ich persönlich verwende aber immer noch die Form
ObservableCollection<MyType> list = new();
da ich dies intuitiver zu lesen finde.
PS: Du hättest besser ein eigenes Thema dafür erstellt.
Thema abgeteilt.
danke dir!
ja , bei nächsten mal denke ich dran.
ObservableCollection<MyType> list = new();
da ich dies intuitiver zu lesen finde.
Nicht nur das, sondern weil [] auch einfach einen anderen Typ erzeugen kann.
Beispiel:
Bei EF Core ist strikt empfohlen alle Relationen als HashSet zu definieren.
public ICollection<MyEntity> MyEntities { get; set; } = new HashSet<MyEntity>();
Würde man hier mit []
arbeiten, würde eine List<MyEntity>
initialisiert werden, was eine völlig andere Wirkung auf die Arbeistweise von EF Core hat - ein Fehler, der in sehr bösen Race Conditions / Komplikationen enden kann.
[] ist echt nett, aber teilweise eine böse Falle.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code