Neue Sprachversion könnte von Einführung der Option Types profitieren

Option Types für References in C# 7
Kommentare

Bereits im Januar wurde mit der Arbeit an der kommenden Version von C#, C# 7, begonnen, während die derzeit aktuelle Version mit allerhand neuen Codefeatures im Juli veröffentlicht wurde. Auch C# 7 dürfte wieder einige interessante Neuerungen bereithalten – zum Beispiel die Einführung von Option Types für References.

Zumindest ist genau das ein Vorschlag von Mads Torgersen, dem C# Language Program Manager bei Microsoft. Erst vor kurzem hat er auf GitHub ein entsprechendes Proposal veröffentlicht, in dem er detailliert erklärt, wie eine solche Option-Type-Einführung in C# 7 aussehen könnte. Sergio De Simone hat die wichtigsten Punkte daraus zusammengefasst.

Einführung von Option Types soll für mehr Sicherheit in C# 7 sorgen

Bereits jetzt verfügt C# über den Support von Nullable Value Types – allerdings nur für auf struct basierende Value Types und nicht für Reference Types, die auf class basieren. Die Einführung von Option Types für References soll vor allem dazu dienen, die Sprache selbst sicherer zu gestalten, indem sie für eine Reduzierung von Null-Reference-Exceptions sorgen sollen. Diese treten gerade in C# gehäuft auf, da jeder Reference-Type einen Null-Wert referenzieren kann.

Dabei gibt Torgersen selbst direkt zu bedenken, dass die Einführung von Option Types kein unanfechtbarer Mechanismus für die Vereinfachung des Umgangs mit Reference Types ist. Stattdessen sollen Option Types vor allem eine Möglichkeit bieten, festzustellen, an welchen Stellen der C#-Code Null dereferenziert wird und dem User eine entsprechende Warnung ausgeben.

Stellen Sie Ihre Fragen zu diesen oder anderen Themen unseren entwickler.de-Lesern oder beantworten Sie Fragen der anderen Leser.

Torgersens Vorschlag ist grundsätzlich so ausgelegt, dass keine Breaking Changes im bestehenden Code entstehen sollten; allerdings könnte durch die Einführung das Verhalten des Compilers beeinträchtigt werden, da derzeit der Reference Type T einen nullable Type repräsentiert und so zahlreiche Warnungen verursachen könnte. Darum sollen die Option Types zudem die Möglichkeit erhalten, die Warnung auszuschalten, um die Kompatibilität über die verschiedenen C#-Versionen sicherzustellen.

In seinem Proposal zeigt Torgersen detailliert und mit Code-Beispielen, wie er sich die Einführung von Option Types vorstellt. Einen Blick wert sind übrigens auch die bisher eingegangenen Kommentare, in denen sich die Community eher zwiegespalten über das mögliche neue Feature zeigt. Das Proposal steht auf GitHub zur Einsicht zur Verfügung.

Aufmacherbild: C# concept green background with green text von Shutterstock / Urheberrecht: ScandinavianStock

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -