2016-06-06 4 views
0

Gibt es einen Option Typ, den wir in VB verwenden können? Ich arbeite gerade an einem Projekt in VB und denke über einen Weg nach, um alle if Überprüfung auf null/Nothing und die Rückkehr von null/Nothing loszuwerden. Wenn ich etwas dieser Art haben kann, könnte ich statisch sicherstellen, dass eine Methode option zurückgibt, anstatt Anrufer durch das Zurückgeben von null zu überraschen. Das würde den Code weniger fehleranfällig machen und würde so viel besser lesen.Optionstyp in VB

+2

Können Sie ein Codebeispiel posten? Meinst du eine Aufzählung? https://msdn.microsoft.com/en-us/library/8h84wky1.aspx –

+0

Nein, ich bin nicht analt enums. Ich spreche vom Typ "Option". Es ist ein Typ, der entweder etwas oder nichts hat. Es hat niemals null. Im Grunde das: https://en.wikipedia.org/wiki/Option_type –

+0

Schnelle Frage. Wie wird dies die Anzahl der "Nein" -Kontrollen reduzieren? Angenommen, eine Funktion gab null oder den erforderlichen Wert zurück, und Sie hatten eine Bedingung, die auf Null überprüft wurde. Mit dem Optionstyp prüfen Sie, ob der erforderliche Wert oder der Standardwert zurückgegeben wird. Es sei denn, ich verpasse etwas. – jitendragarg

Antwort

1

Kurze Antwort:

Nr

Lange Antwort:

Unterstützung für die richtige Option Typen oder algebraische Datentypen in der Regel keine Zeit zu C#/VB.Net kommt bald .

Unterstützung für nicht nullable Typen, die nicht ganz die gleichen sind, aber trotzdem Kompilierung Null-Überprüfung zulassen würde, ist für die bevorstehende C# 7 geplant. AFAIK es wurde noch nicht bestätigt, dass VB 15 die Gleiche Funktion.

Sie können selbst eine Reihe von Anti-NullReferenceException-Tricks entwickeln, die die Wahrscheinlichkeit minimieren, dass zufällig eine Null passiert, aber es ist einfach nicht möglich, sie vorläufig zu 100% kompilierbar zu machen.

+0

Danke für die Klarstellung. Irgendeine Idee warum die negativen Stimmen zu der Frage? –

+0

Nicht sicher, sorry. Ich habe SO nicht lange genug benutzt, um zu erraten. – piaste

+0

@piaste - Ich nehme an, dass die Frage abgelehnt wurde, weil es nicht sehr klar ist, was Sie fragen. Wenn es eine andere Sprache gibt, von der Sie wissen, dass sie diese Funktion hat, könnten Sie sie vielleicht in der Frage erwähnen, um Ihre Bedeutung zu verdeutlichen. –