csharplang 6045
https://github.com/dotnet/csharplang/blob/main/proposals/csharp-14.0/null-conditional-assignment.md
x?.X = v; が if (x != null) x.X = v; に。
= 演算子の優先順位の低さを考えると (x?.X) = v; っぽく見えて気持ち悪いものの、需要は高いので。
式の途中に書くのも、右辺側ならできそう(var y = (x?.X = v); とかできちゃう。 x が null なら y も null)。
複合代入も可。
vara=newA{X=new()};for(inti=0;i<100;i++){a.X?.Value+=1;a.Y?.Value+=1;}Console.WriteLine(a.X?.Value);Console.WriteLine(a.Y?.Value);classCount{publicintValue;}classA{publicCount?X;publicCount?Y;}
csharplang 6045
https://github.com/dotnet/csharplang/blob/main/proposals/csharp-14.0/null-conditional-assignment.md
x?.X = v;がif (x != null) x.X = v;に。=演算子の優先順位の低さを考えると(x?.X) = v;っぽく見えて気持ち悪いものの、需要は高いので。式の途中に書くのも、右辺側ならできそう(
var y = (x?.X = v);とかできちゃう。xが null ならyも null)。複合代入も可。