Start Debugging

csharp-14

27 件 · ページ1/3

C# の `with` 式は実際に何をコピーするのか、そしてレコードの計算プロパティが再計算されないのはなぜか

with 式はレコードのコンパイラー生成メソッド <Clone>$ を呼び出し、そこでコピーコンストラクターが全インスタンスフィールドをコピーし、すべての初期化子をスキップします。そのため、他のプロパティから初期化されるプロパティ、キャッシュされた値、Guid の ID は古いまま残ります。.NET 10 と C# 14 で計測し、実際に有効な対処法を紹介します。

C# のリポジトリメソッドで Task を直接返す vs async/await でパススルーする: どちらを使うべきか

リポジトリのパススルーメソッドで async/await を省略すると約 6 ns と 72 バイトを節約できますが、スタックフレーム、try/catch のセマンティクス、安全なリソース破棄を失います。計測済みのホットパス上の純粋なパススルーでない限り、return await を残してください。
次へ