Nobuyuki Iwanaga
Nobuyuki Iwanaga
https://github.com/dotnet/csharplang/blob/main/proposals/first-class-span-types.md VS 17.13 p1 (C# 13 が GA になった瞬間)で merge されてる。 ```cs { } string[] a = []; ReadOnlySpan a2 = a; // C# 13 でも OK Span s =...
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/attributes/general とかいうページ見かけた。 https://ufcpp.net/study/csharp/sp_attribute.html#compiler_attribute に反映させてもいいかも? あとおまけで思ったけど、このページ、「動的な処理」配下にあるんだけど、コンパイラーが使う属性は静的よなぁ…
https://ufcpp.net/study/csharp/cheatsheet/langversionoption/ の記述が変: * msbuild の `` 省略と `default` が違うという話がない * 前者は TargetFramework からの自動指定 * Roslyn のレイヤーには `csc /LangVersion:13` みたいなのが具体的な数字が渡ってるはず * 後者は Roslyn に `/LangVersion:default` が渡る * これは今だと `/LangVersion:latest` と同じになるはず?確か *...
* [x] #479 * [x] #467 * [ ] #471 * [x] #488 * [ ] #489 * [x] #490 * [x] #491 * [ ] #492 * [x] #493...
https://github.com/dotnet/roslyn/blob/main/docs/features/string-literals-data-section.md 文法上は何もなくて、「コンパイラーオプション次第でDLL中に文字列データを埋め込む方法が変わる」という話。 正直ブログに書くだけとかでもいいかも? https://github.com/ufcpp/UfcppSample/tree/master/Demo/2025/StringInDataSection 主目的は UserString セクションの方がサイズ上限厳しい → それで Razor コンパイル結果が引っ掛かった → Data セクションならまだ余裕があるからそっちに書き込みしようか という話。 で、せっかくだから「UTF-8 で書こう」(`u8` リテラルで既にやってるのでそれを流用)となり。 副次的に DLL サイズが小さくなりがちというメリットあり。 (「const string で埋め込むものって ASCII なことが多いし、UTF-8 の方が有利」というのが世の中の実情なので、現実的にはほぼ確実に DLL サイズ小さくなる。) デメリットは「const...
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` が...