C#

【C#】Task.WhenAnyは例外スローしない話&正しくハンドリングする方法

C#

C#のTask.WhenAnyで例外を正しくハンドリングする方法です。 WhenAnyは例外をスローしない WhenAnyで正しく例外をハンドリングする 参考

【C#】CancellationTokenSource.CreateLinkedTokenSourceでいずれかのCancellationTokenがキャンセルされたらキャンセル扱いにする

C#

いずれかのCancellationTokenがキャンセルされたらキャンセル扱いにするCancellationTokenSource.CreateLinkedTokenSource の使い方です。 やりたいこと 使い方 参考

【.NET】Object.GetHashCodeの結果は実際結構被る

.NETのObject.GetHashCodeの結果は実際結構被るというお話です。 Object.GetHashCode() 実際どれくらい被るのか

【Unity】【エディタ】WindowsとMacでパスを正しく取り扱う

はじめに プラットフォームとディレクトリ区切り文字 プラットフォーム依存問題 UnityのAPIとパス .NETとパス Unityでパスを正しく扱う 関連 参考

【Unity】【xLua】LuaとC#をまたいでオブジェクト指向な実装をする

xLuaでLuaとC#をまたいでオブジェクト指向な実装をする方法についてまとめました。 xLua? 課題 Luaにおけるオブジェクト指向 特定の環境の変数にだけ値を代入する 関連

【C#】マルチスレッドで安全に使えるCollectionクラス - BlockingCollection

C#

マルチスレッドでも安全に使えるCollectionクラスであるBlockingCollectionについてまとめます。

【Unity】Unityでマルチスレッド処理する方法が多すぎてわけわかんないのでまとめた

Unityでマルチスレッド処理する方法が多すぎて混乱したのでざっくりまとめました。 C#におけるマルチスレッドの基本:Task 簡単な同期的並列処理ならParallelで Linqの処理をマルチスレッドで行うAsParallel UniTaskでもマルチスレッド処理できる UniRxでも…

【C#】マルチスレッドとIEnumerableを組み合わせる際の注意点

C#

C#でマルチスレッドとIEnumerableを組み合わせる際の注意点についてまとめました。 はじめに IEnuemrableをサブスレッドから返すことを考える サブスレッドで行う処理にIEnumerableを渡すことを考える

【Unity】【C#】Taskの未処理例外をUnobservedTaskExceptionで処理してログ出力する

UnityでTaskの未処理例外をUnobservedTaskExceptionで処理する方法をまとめました。

【C#】非同期メソッド内でファイルIOするときの排他制御

C#で非同期メソッド内でのファイル入出力における排他制御についてまとめました。 同時読み込み・書き込みを許可するFileShare 並列読み込み・書き込みを管理する必要性 セマフォで排他制御

【Unity】【Rider】RiderでT4テキストテンプレートを使う

Unity x RiderでT4テンプレートを使う方法をまとめました。 T4テンプレートの基本的な使い方はこちら Visual Studioとの相性の悪さ~RiderのT4テンプレートサポート C# Project Generationにttを加える テンプレートファイルを作る テキストを生成する 実行…

【Visual Studio】【.NET】T4テキストテンプレートで文字列(ソースコード)を自動生成する方法まとめ

T4テキストテンプレートの基本的な使い方をまとめました。 T4テキストテンプレート? シンタックスハイライトとコード補間を有効にする テンプレートからコードを生成する デザイン時テキストテンプレートと実行時テキストテンプレート デザイン時テンプレー…

【C#】正規表現の使い方まとめ

C#

C#の正規表現の使い方をまとめます。 パターンの記述方法についてはよくまとまっている記事がいくらでもあるのでそれ以外の情報についてまとめます。 基本的な使い方 IsMatch, Match, Matches 最短マッチを表す「?」 オプションまとめ 置換 分割 グループ OR…

【Unity】Unity2020.2から使えるC#8の機能まとめ

Unity2020.2から使えるC#8の機能をまとめました。 Unity2020.2からC#8の機能が使えるようになりました 使えない機能 readonly members Switchが式として使えるように パターンマッチングの強化 プロパティパターン タプルパターン 位置指定パターン(Positio…

【C#】独自の型にDeconstructメソッドで分解宣言・分解代入できるようにする

C#

C#で独自の型にDeconstructメソッドを追加して分解宣言・分解代入できるようにする方法です。 分解宣言・分解代入? タプル型の分解宣言 分解代入 独自の型にDeconstructメソッドで分解宣言・分解代入できるようにする 関連

DIコンテナの非推奨な使い方・サービスロケーターパターン

DIコンテナの非推奨な使い方であるサービスロケーターパターンについてまとめました。 はじめに 良い例 良くない例 - サービスロケーターパターン Microsoft.Extensions.DependencyInjectionとしても非推奨 関連 参考

【C#】【Unity】マルチスレッドによる並列処理を排他制御する方法まとめ

C#における並列処理の排他制御についてまとめました。 特にUnityに依存する内容ではないですが、Unityで動作確認を行っています。

【C#】implicit / explicitキーワードで型変換演算子を定義する

C#

C#でimplicit / explicitキーワードを使って型変換演算子を定義する方法についてまとめました。

【C#】【Unity】Taskによる非同期処理をWait()したときにデッドロックする原因と対策

C#で非同期処理におけるスレッドの仕組みとWait()によるデッドロックについてまとめました。

【Unity】【UniTask】マルチスレッドとしてのTaskからUniTaskを眺める

Taskのマルチスレッドを実現するための機能という側面からUniTaskについて考えてみます。

【Unity】internalなクラスのテストを書く

Unityでinternalなクラスのテストを書く方法をまとめました。

【Unity】【C#】Genericな型の等価判定によるメモリアロケーション及びUnity組み込み構造体のIEquatable実装状況

Genericな型の等価判定をすることによるメモリアロケーションの問題とその解決策、 及びUnity組み込み構造体のIEquatable実装状況についてまとめました。

【C#】正しく例外を再スローする方法とExceptionDispatchInfo

C#

C#における例外の再スローを正しく行う方法についてまとめました。

【2020年版】.NET Framework / .Net Core / Xamarinの関係を整理~そして.NET 5へ

.NET関連のフレームワークは概念も歴史も複雑でよくわからなくなりがちです。 .NET 5という大きい転換点が訪れるこのタイミングで、現時点で.NETの理解に必要な知識をざっとまとめてみました。

【C#】EventWaitHandleを使ってスレッドの排他処理を管理する方法まとめ

C#

WaitHandleを使ってスレッドの排他処理を管理する方法をまとめました。

【Unity】uGUIで入力できない文字をはじくまでの長き道のり - Unicodeの誕生からサロゲートペア、バリデーション用ソースコードまで

UnityのuGUIで入力できない文字をはじくために必要な知識をまとめました。

【Unity】【C#】delegateをTaskに変換してawaitできるようにする

C#でdelegateをTaskに変換してawaitできるようにする方法です。

【Unity】UniRxでメモリリークを引き起こすケースとAddToやTakeUntilDestroyの重要性

UniRxでメモリリークするケースとAddToやTakeUntilDestroyの重要性についてまとめました。

【Unity】【C#】憎きGCを防ぐために!Update内でやっちゃダメなこと総まとめ

C#を使ったUnity開発で無駄なGCを防ぐためにUpdate内でやるべきじゃないことをまとめました。

【Unity】UnityのProfilerでそのフレームにおけるメモリ割り当てを分析する

UnityのProfilerでそのフレームにおけるメモリ割り当てを分析する方法です。