2023-11-12 csharpdotnetdotnet-8 C# リストからランダムに項目を選ぶ .NET 8 で導入された Random.GetItems を使うと、C# でリストからランダムに項目を選択できます。実用的な例とともに動作を解説します。
2023-11-11 dockerdotnet .NET でコンテナを tar.gz として発行する方法 .NET 8 のコンテナを ContainerArchiveOutputPath プロパティと dotnet publish を使って tar.gz アーカイブとして発行する方法を解説します。
2023-11-10 csharpmauidotnet MAUI: ライブラリ内でハンドラーを登録する方法 ビルダーパターンと MauiAppBuilder の拡張メソッドを使って、.NET MAUI ライブラリの内側からビューハンドラーやサービスを登録する方法を紹介します。
2023-11-09 csharpdotnet エラー対処: 'Point' には事前定義されたサイズがないため、sizeof は unsafe コンテキストでしか使えない unsafe コンテキスト外で sizeof を Point に対して使えない C# のエラーを解決します。unsafe コードを有効化する方法と、Marshal.SizeOf を使う方法の2つを紹介します。
2023-11-08 csharpdotnetdotnet-8 C# Unsafe Accessor を使ってプライベートプロパティのバッキングフィールドにアクセスする .NET 8 の UnsafeAccessorAttribute を使って、C# のプライベート自動プロパティの自動生成されたバッキングフィールドにリフレクションなしでアクセスします。
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 がいかにオーバーヘッドゼロのパフォーマンスを実現しているかを見ていきます。