2017-06-21 1 views
7

In F # werden die Konstruktorparameter automatisch als unveränderbare Felder in der Klasse gespeichert, ohne dass die Deklaration des Felds oder das Kopieren des Konstruktorparameters in das Feld im Konstruktor geschrieben werden muss.Gibt es eine Möglichkeit, F # 'Konstruktor-Parameter-sind-automatisch-unveränderbar-private-Mitglieder-Funktion in C# zu bekommen?

Gibt es eine Möglichkeit, diese Funktionalität in C# nachzuahmen? Gibt es einen Grund, warum eine zukünftige Version von C# dieses Feature nicht haben könnte (d. H. Gibt es eine grundlegende Einschränkung der vorhandenen Sprache, die mit dieser Funktion in Konflikt steht)?

Antwort

8

Das C# -Aquivalent wird records sein. Diese sind derzeit für C# 8 vorgesehen, aber es gibt keine Garantien (zumal sie auch für C# 6 & 7 vorgeschlagen wurden und in beiden Fällen verspätet waren).

+2

Ich denke, ein näheres Feature wäre [Primary Konstruktoren] (http://odetocode.com/blogs/scott/archive/2014/08/14/c-6-0-features-part-ii-primary-constructors .aspx). –

+1

@ScottWhitlock, mein Verständnis ist, dass Datensätze Klassen und Strukturen mit primären Konstruktorsyntax sein werden, zusammen mit einigen Senkfunktionen zum Hinzufügen von zB Gleichheitsfunktionalität und dergleichen. Also ich denke, die beiden sind jetzt in dem einen Feature vereint. Ich könnte mich allerdings irren. –

Verwandte Themen