UnityEngine.RandomとSystem.Randomがあいまいなのを解決する

タイトルの通りですが、以下のように2つの名前空間を using すると Unity のクラス名と C# の標準ライブラリのクラス名が同じためエラーが出ます。 using System; using UnityEngine; public static class Sample { public static void Foo() { // エラー CS…

ValueObjectでファイルパスとファイル名を区別する

string 変数が xxxFilePath と書いてあってファイル名しか入ってない、xxxFileName と書いてあったのに中身はファイルパスということが頻発したりこのstring型そもそも何が入ってるのかわからないなんて事が頻発したので対応策を考えました。プリミティブな…

【C#】MainメソッドでIDE1006の警告が出る場合

標準テンプレートでは以下のような指摘事項が表示されます。割とうっとおしい。 // IDE1006 名前付けルール違反: 最初の単語 'Main' は、小文字で始まらなければなりません static void Main(string[] args) これは .NET の一般的な名前付けのガイドラインが…

【C#】リフレクションでnullチェックを自動化する

リフレクションを使って null チェックを自動化する方法です。 C# で null チェックをする場合以下のようなコードを書くと思います。 // サンプル用のクラスと変数宣言 public class Sample { public int A { get; set; } public int B { get; set; } } var …

【C#】コンストラクタの挙動まとめ

C# のコンストラクターの宣言のされ方による呼び出しの基本的な動作のまとめです。暗黙のコンストラクターと継承したときの挙動を中心に確認しています。内容は自分用のメモです。久しぶりに気にすると動きを忘れていることがあったので改めて文字に起こして…

【C#】ValueObjectの実装例

2022-07-03 この記事は、int や string の代わりに使用する値はプリミティブ型だけど値が特定の意味を持つため型にして区別したい時に使用する immutable(不変性:一度作ったら以降に内容が変化しないよう) なオブジェクトを実現ための C# での実装例の紹…

【Unity】JsonUtilityで配列とリストを処理する

Unity の JsonUtility の話です。Unity では JSON をオブジェクトに変換(デシリアライズ)したり、オブジェクトを JSON に変換(シリアライズ)するための JsonUtility というライブラリがあります。 この JsonUtility というライブラリ動作が非常に高速で…

【C#】リフレクションでオブジェクトの内容を比較する

リフレクションを使ってオブジェクトを中身で比較する方法です。 C#でオブジェクトを比較するときは以下のようにコードを書くと思います。 // サンプル用のクラスと変数宣言 public class Sample { public int A { get; set; } public int B { get; set; } }…

JSONを整形して保存するC#の実装例

未整形の JSON を整形してファイルに保存しなおす C# プログラムの実装例です。未知の構造の JSON フォーマットを扱うので Newtonsoft の JSON ライブラリ(の JObject )を使用します。 実装環境 .NET Core 3.1 C# 9.0 VisualStudio2019 Windows10 実装コー…

C#の文字列補完はToStringした方が高速になる理由を調べてみた

はじめに C# の「文字列補完」機能という機能があります。ものすごい雑に言うと C# 6 以降で可能な文字列の先頭に「$」起動を付けることでフォーマット付き文字列を埋め込んで記述することができ視認性を向上することができる機能です。 記述例は以下の通り…

VisualStudio2019でスペルチェック機能を利用する

検索すると VSCode のスペルチェックの記事は非常によく目にするのですが、Visual Studio (Codeじゃないほう)の記事は全然ヒットしない、もしくはVS2010くらいの情報しかヒットしないのでVisualStudio2019で英語のスペルチェックを行う方法を紹介したいと思…

【C#】Listと配列でforとforeachのアクセス速度比較

2022-07-31 結論としては以下の通り。 配列は for と foreach の速度はほぼ同じ List<T> は for のほうが foreach より10%以上早い 配列に対する操作は List に対する操作より 50%以上早い List<T> クラスの ForEach メソッドはメリットが無いので使わないほうが</t></t>…