c#-7.1

___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entworfen wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ tag123nullable ___ Das NULL-Tag kann nur für NULL-bezogene Elemente oder Typen verwendet werden. ___ qstnhdr ___ Die Verwendung von C # 7.1-Standard-Literal in nullbaren optionalen Argumenten führt zu unerwartetem Verhalten ___ tag123compilerbug ___ Für Fragen zum (vermuteten) falschen Verhalten eines Compilers. Verwenden Sie das entsprechende Sprach-Tag und gegebenenfalls das Tag für den betreffenden Compiler. ___ tag123c71 ​​___ Verwenden Sie dieses Tag für spezielle Fragen zu C # 7.1, die am 16. August 2017 veröffentlicht wurden. In den meisten Fällen sollten Sie auch das C # -Tag angeben. ___ tag123default ___ Bezieht sich auf eine anfängliche, am häufigsten verwendete Option, Einstellung oder einen Wert, der einer Anwendung oder einem Gerät außerhalb des Benutzereingriffs automatisch zugewiesen wird, um sie "sofort einsatzbereit" zu machen. ___ answer46997896 ___

Nach mehr Online-Recherchen fand ich heraus, dass es sich um einen bekannten bestätigten Bug handelt:

Es ist bereits behoben und wird Teil von C # 7.2 sein.

    
___ qstntxt ___

C # 7.1 führt eine neue Funktion namens "Standardliterale" ein, die neue %code% Ausdrücke erlaubt.

%Vor%

Für %code% types ist der Standardwert %code% und bei der üblichen Verwendung funktioniert dies wie erwartet:

%Vor%

Wenn ich jedoch versuche, das neue Standardliteral als optionales Argument (Parameter) einer Funktion zu verwenden, funktioniert es nicht wie erwartet:

%Vor%

Für mich ist dieses Verhalten unerwartet und sieht wie ein Fehler im Compiler aus.

Kann jemand den Fehler bestätigen oder dieses Verhalten erklären?

    
___
1
Antwort

Die Verwendung von C # 7.1-Standard-Literal in nullbaren optionalen Argumenten führt zu unerwartetem Verhalten

C # 7.1 führt eine neue Funktion namens "Standardliterale" ein, die neue default Ausdrücke erlaubt. %Vor% Für Nullable<T> types ist der Standardwert null und bei der üblichen Verwendung funktioniert dies wie erwartet: %Vor%...
29.10.2017, 07:32