[a, b, c, d, e, f, g, h]
というリストを3個ずつに分割して、最後の要素は3個以下の[a, b, c], [d, e, f], [g, h]
というリストを得たいとする。そのときC#でどう書くかという質問の答えとして人気があるのが、以下のLINQである。
投稿者: Kazuhiro Fujieda
dotnet formatコマンドをStyleCop.Analyzersと組み合わせて使う
この記事では、dotnet formatコマンドを使ってC# Coding Styleにそってソースコードをフォーマットする方法と、その限界を説明する。そして、StyleCop.Analyzersを導入して、それを克服する方法を紹介する。また、ソリューション内のすべてのプロジェクトに、StyleCop.Analyzersを適用する方法についても言及する。
"dotnet formatコマンドをStyleCop.Analyzersと組み合わせて使う" の続きを読むよいコミットの作り方
この記事では、gitに代表されるバージョン管理システムにおける、よいコミットの作り方について以下の項目を説明する。
- コミットを作成する目的
- 目的別のよいコミットの作り方
- よいコミットメッセージの書き方
「git コミットメッセージ」で検索すればすぐわかること
システムトレイアプリケーションをWPFとMVVMで実装する
この記事では、WPFとMVVMとによるシステムトレイアプリケーションの一実装について解説する。ソースコード全体はGitHubリポジトリにある。
この実装は二つの特徴がある。まず、よく使われているWPF NotifyIconを使っていない。ライセンスのCPOLが、どのOSSライセンスとも互換性がないからだ。また、MVVMパターンを採用していてコードビハインドがない。
"システムトレイアプリケーションをWPFとMVVMで実装する" の続きを読むMahApps.Metro 2.xへの移行作業
この記事では、スクリーンキャプチャツールBurageSnapにおけるMahApps.Metro 1.3.0から2.4.3への移行作業を紹介する。BurageSnapでは以下の小さなフットプリントを実現するために、MahApps.Metroを利用している。
"MahApps.Metro 2.xへの移行作業" の続きを読むUnityアプリケーションをNamedPipe経由で制御する
以下のようなWindowsアプリケーションから、UnityアプリケーションをNamedPipeを介して制御する方法を紹介する。なおソースコード全体はGitHubのリポジトリに置いてある。
"UnityアプリケーションをNamedPipe経由で制御する" の続きを読むC#でロックフリーなメモリープールを自作する
基本的にシングルスレッドでしか使わないライブラリを、速度を落とさずにスレッドセーフにするために、ロックフリーなメモリープールを自作した話を紹介する。この記事はC# その2 Advent Calendar 2020の18日目の記事である。
"C#でロックフリーなメモリープールを自作する" の続きを読むC#でNaN Boxing
この記事では、以前C# Tokyoで行ったプレゼンテーションを元に、JSONパーザーDynaJsonで用いているNaN Boxingという最適化技法について説明する。この記事はC# Advent Calendar 2020の6日目の記事である。
"C#でNaN Boxing" の続きを読む[Unity] Physics.OverlapCapsuleの使い方
2021-09-06更新: 対象のGameObjectのrotationと、CapsuleColliderのdirectionを考慮するように大きく修正した。
上記のようにCapsulColliderと重なった2つのColliderを取得するには、Physics.OverlapCapsule
を使用する。このメソッドは、カプセルの位置と大きさを受け取り、そのカプセルと重なっているすべてのColliderを返す。
厳格なJSONパーザーの作り方
僕の作ったJSONパーザーのDynaJsonはとても厳格にできている。RFC 8259に準拠しているものはすべて受理するし、そうでないものは二つの例外を除きすべて受理しない。
受理する例外は、ケツカンマと02
や-02
のような0で始まる数字である。前者を受理するのは実用性のためであり、後者を受理するのはDynamicJsonとの互換性のためである。
JSONの文法はとても単純だが、不用意にパーザーを実装するとRFCに準拠したJSONを受理しなかったり、非準拠のものをエラーにできなかったりする。パーザーを実装する際の地雷ポイントはParsing JSON is a Minefieldによくまとまっている。
"厳格なJSONパーザーの作り方" の続きを読む