小ネタです。
はてなブログの C# の linter が古いのか、シンタックスハイライトがめちゃくちゃになってますが気にしないでください。
string Foo(int? num) { // これはコンパイルエラー return $"The num is {num == null ? "NULL" : num.Value.ToString()}."; }
string interpolation ($
文字列) の中に三項演算子は書けないです。もしこれを書けるように認めると、コンパイラの構文解析のコストが高くなりすぎるらしいです、たしか。
悲しいですね。
なのでコンパイラの気持ちになってあげましょう。
string Foo(int? num) { // 全体を () で包むとコンパイルが通る return $"The num is {(num == null ? "NULL" : num.Value.ToString())}."; }
コンパイラにここまでが値だよ~と教えてあげるために全体をカッコで包んであげましょう。はい、優しさに包まれましたね。