Using C# 7.1 default literal in nullable optional argument causes unexpected behavior
问题 C# 7.1 introduces a new feature called "Default Literals" that allows new default expressions. // instead of writing Foo x = default(Foo); // we can just write Foo x = default; For Nullable<T> types, the default value is null , and with the usual usage this works as expected: int? x = default(int?); // x is null int? x = default; // x is null However, when I try to use the new default literal as an optional argument (parameter) of a function, it's not working as expected: static void Foo(int?