C#
.NETでRoslynを使った構文解析とセマンティック解析をする方法についてまとめました。 はじめに セットアップ 構文解析 ノード・トークン・トリビア Nodeクラスの派生型 構文ウォーカー SyntaxTreeを可視化する セマンティック解析 セマンティック解析とは …
C#のTask.WhenAnyで例外を正しくハンドリングする方法です。 WhenAnyは例外をスローしない WhenAnyで正しく例外をハンドリングする 参考
いずれかのCancellationTokenがキャンセルされたらキャンセル扱いにするCancellationTokenSource.CreateLinkedTokenSource の使い方です。 やりたいこと 使い方 参考
.NETのObject.GetHashCodeの結果は実際結構被るというお話です。 Object.GetHashCode() 実際どれくらい被るのか
はじめに プラットフォームとディレクトリ区切り文字 プラットフォーム依存問題 UnityのAPIとパス .NETとパス Unityでパスを正しく扱う 関連 参考
xLuaでLuaとC#をまたいでオブジェクト指向な実装をする方法についてまとめました。 xLua? 課題 Luaにおけるオブジェクト指向 特定の環境の変数にだけ値を代入する 関連
マルチスレッドでも安全に使えるCollectionクラスであるBlockingCollectionについてまとめます。
Unityでマルチスレッド処理する方法が多すぎて混乱したのでざっくりまとめました。 C#におけるマルチスレッドの基本:Task 簡単な同期的並列処理ならParallelで Linqの処理をマルチスレッドで行うAsParallel UniTaskでもマルチスレッド処理できる UniRxでも…
C#でマルチスレッドとIEnumerableを組み合わせる際の注意点についてまとめました。 はじめに IEnuemrableをサブスレッドから返すことを考える サブスレッドで行う処理にIEnumerableを渡すことを考える
UnityでTaskの未処理例外をUnobservedTaskExceptionで処理する方法をまとめました。
C#で非同期メソッド内でのファイル入出力における排他制御についてまとめました。 同時読み込み・書き込みを許可するFileShare 並列読み込み・書き込みを管理する必要性 セマフォで排他制御
Unity x RiderでT4テンプレートを使う方法をまとめました。 T4テンプレートの基本的な使い方はこちら Visual Studioとの相性の悪さ~RiderのT4テンプレートサポート C# Project Generationにttを加える テンプレートファイルを作る テキストを生成する 実行…
T4テキストテンプレートの基本的な使い方をまとめました。 T4テキストテンプレート? シンタックスハイライトとコード補間を有効にする テンプレートからコードを生成する デザイン時テキストテンプレートと実行時テキストテンプレート デザイン時テンプレー…
C#の正規表現の使い方をまとめます。 パターンの記述方法についてはよくまとまっている記事がいくらでもあるのでそれ以外の情報についてまとめます。 基本的な使い方 IsMatch, Match, Matches 最短マッチを表す「?」 オプションまとめ 置換 分割 グループ OR…
Unity2020.2から使えるC#8の機能をまとめました。 Unity2020.2からC#8の機能が使えるようになりました 使えない機能 readonly members Switchが式として使えるように パターンマッチングの強化 プロパティパターン タプルパターン 位置指定パターン(Positio…
C#で独自の型にDeconstructメソッドを追加して分解宣言・分解代入できるようにする方法です。 分解宣言・分解代入? タプル型の分解宣言 分解代入 独自の型にDeconstructメソッドで分解宣言・分解代入できるようにする 関連
DIコンテナの非推奨な使い方であるサービスロケーターパターンについてまとめました。 はじめに 良い例 良くない例 - サービスロケーターパターン Microsoft.Extensions.DependencyInjectionとしても非推奨 関連 参考
C#における並列処理の排他制御についてまとめました。 特にUnityに依存する内容ではないですが、Unityで動作確認を行っています。
C#でimplicit / explicitキーワードを使って型変換演算子を定義する方法についてまとめました。
C#で非同期処理におけるスレッドの仕組みとWait()によるデッドロックについてまとめました。
Taskのマルチスレッドを実現するための機能という側面からUniTaskについて考えてみます。
Unityでinternalなクラスのテストを書く方法をまとめました。
Genericな型の等価判定をすることによるメモリアロケーションの問題とその解決策、 及びUnity組み込み構造体のIEquatable実装状況についてまとめました。
C#における例外の再スローを正しく行う方法についてまとめました。
.NET関連のフレームワークは概念も歴史も複雑でよくわからなくなりがちです。 .NET 5という大きい転換点が訪れるこのタイミングで、現時点で.NETの理解に必要な知識をざっとまとめてみました。
WaitHandleを使ってスレッドの排他処理を管理する方法をまとめました。
UnityのuGUIで入力できない文字をはじくために必要な知識をまとめました。
C#でdelegateをTaskに変換してawaitできるようにする方法です。
UniRxでメモリリークするケースとAddToやTakeUntilDestroyの重要性についてまとめました。
C#を使ったUnity開発で無駄なGCを防ぐためにUpdate内でやるべきじゃないことをまとめました。