2023-11-06 csharpdotnetdotnet-8 C# ZIP ファイルを Stream に書き出す .NET 8 では、ZIP ファイルをディスクに書き込まずに Stream との間で直接作成・展開できる、新しい CreateFromDirectory と ExtractToDirectory のオーバーロードが追加されました。
2023-11-05 csharpdotnetdotnet-8 .NET 8 のパフォーマンス: GetGenericTypeDefinition が 10 倍高速に .NET 8 と .NET 7 で GetGenericTypeDefinition をベンチマークすると、ほぼ 10 倍のパフォーマンス向上が見られます。BenchmarkDotNet によるベンチマークコードと結果を紹介します。
2023-11-04 csharpdotnet .NET core でスクリーンショットを撮る方法 System.Windows.Forms を使って、.NET コンソールアプリケーションからデスクトップ全体のスクリーンショットを撮る方法を解説します。Windows 限定の方法で、すべてのディスプレイをカバーします。
2023-11-02 csharpdotnetdotnet-8 C# UnsafeAccessor で readonly フィールドを更新する方法 C# で UnsafeAccessor を使って readonly フィールドを更新する方法を解説します。リフレクションのパフォーマンスペナルティのない代替手段で、.NET 8 で利用できます。
2023-11-01 csharpdotnetdotnet-8 .NET 8 のパフォーマンス: UnsafeAccessor vs. リフレクション .NET 8 で UnsafeAccessor とリフレクションをベンチマーク。従来のリフレクションと比べて、UnsafeAccessor がいかにオーバーヘッドゼロのパフォーマンスを実現しているかを見ていきます。
2023-10-29 csharpdotnetdotnet-8 C# 機能を experimental としてマークする方法 C# 12 から、新しい ExperimentalAttribute を使って型、メソッド、プロパティ、アセンブリを experimental としてマークできるようになりました。diagnosticId、pragma タグ、UrlFormat と組み合わせた使い方を紹介します。
2023-10-28 csharpdotnet C# ref readonly パラメーター C# の ref readonly 修飾子は、読み取り専用の参照を渡すより透明性の高い方法を提供します。in 修飾子に対して、より厳しい制約と呼び出し側からの見えやすさをどう改善するかを解説します。
2023-10-26 csharpdotnetdotnet-8 C# 配列をシャッフルするには? C# で配列をシャッフルするいちばん簡単な方法は、.NET 8 で導入された Random.Shuffle を使うことです。配列にも Span にも、in-place で動作します。
2023-10-20 csharp C# NullReferenceException とは何で、どう直すか? C# で NullReferenceException が発生する原因、デバッグの仕方、null チェックや null 条件演算子、null 許容参照型を使った防止方法を解説します。
2023-10-19 csharpdotnetdotnet-8 既存の JsonSerializerOptions に TypeInfoResolver を追加・削除する .NET 8 で追加された TypeInfoResolverChain プロパティを使って、既存の JsonSerializerOptions に TypeInfoResolver を追加したり、そこから削除したりする方法を解説します。