ルーグの備忘録

主にC#についてまとめてます。

Minecraft ForgeでMod作ってみた

Minecraft Forgeとは Minecraft Forgeは、マイクラ(マインクラフト)において、他のMODの導入の前提となるシステムMODです。 他のMOD同士が衝突しないようにロードする機能や、そのMODを簡単に制作できる機能が含まれています。 artisan-select.com 成果物 ゲ…

Enum Flagsで入力を検知する

Let's bit演算 qiita.combit演算の基本(演算子の意味とか)についてはこちらを参照。 Unityでbit演算 note.dokeep.jpUnityだとEnum Flagsで使う。 使用例 Enum Flagsを使って入力を検知する。 定義 [Flags] public enum KeyCodeFlag { None = 0, // ----- …

ガベージコレクションとは

ガベージコレクションとは e-words.jp ガベージコレクションとは、コンピュータプログラムの実行環境などが備える機能の一つで、実行中のプログラムが占有していたメモリ領域のうち不要になったものを自動的に解放し、空き領域として再利用できるようにする…

仮想メソッドと脱仮想化

仮想メソッドと脱仮想化

クロージャに甘えない

クロージャとは ラムダ式とかで関数の外にある変数や関数を使うと、実はそれらをキャプチャするために暗黙的にクラスがnewされる。この仕組みを使っている関数をクロージャと呼ぶ。引数を渡さなくても自由にラムダ式を書けるのはこの便利な仕組みのおかげ。 …

Zenjectを使ってSingletonを撲滅する

前置き Singletonなんてそんな野蛮な…ここは穏便にDIで…。 Zenjectとは Unityで使えるDIフレームワーク。 assetstore.unity.com DIとは Dependency Injectionの略。日本語訳すると「依存性の注入」だけど…直訳すぎてよく分からない。 だからか「機能の注入」…

C#で書くA*アルゴリズム

A*アルゴリズムをC#で書く。

【C#】名前空間

名前空間とは クラスを種類ごとに分けて管理するための機構。 名前空間中に定義したクラスを参照するには完全修飾名を書くかusing ディレクティブを用いる必要がある。 定義方法 namespace Animal { public class Cat { } } // C# 10.0 から namespace Flowe…

【C#】classとインスタンス

classとは 後述するインスタンスを作るために定義できる設計図。 変数や関数は全てclassの中に書く。classの中に書かれた変数をメンバー変数、関数をメソッド(メンバー関数)という。 定義方法 1. public(アクセス修飾子) 2. class 3. クラス名 4. {}の中…

【C#】関数(メソッド)

変数の解説と被る部分が多いので、変数について何も知らない人は先にこちらをチェック。lougestudy.hatenablog.jp 関数とは 別名メソッド。 メソッドが担う役割は2つある。 まとまった処理を実行する。 処理の結果に応じて呼び出し元に値を返す。 2つとも大…

【C#】演算子

演算子とは 変数に対して処理を行うために必要な記号のこと。+、-、=など。 「=」 の意味 数学での「=」とプログラミングでの「=」はそれぞれ意味が違うので注意が必要。 例えば「X = 10」の場合 数学では「Xと10は等しい」という意味(比較演算子)。 プ…

目次

基礎編 【C#】変数 - C# まとめ【C#】演算子 - C# まとめ【C#】関数(メソッド) - C# まとめ【C#】classとインスタンス - C# まとめ 応用編 【C#】名前空間 - C# まとめ 発展編 C#で書くA*アルゴリズム - C# まとめZenjectを使ってSingletonを撲滅する - C#…

【C#】変数

変数とは 特定の「値」を持つことができる便利なもの。 値とは、例えば3や10.5みたいな数値とか、“ねこ”みたいな文字列とかのこと。 変数ごとにどの種類の値を持つことができるかを決めなければならない。値の種類のことを「データ型」と呼ぶ。 変数が持って…

【C#】ジェネリクス

ジェネリクスとは 型をパラメタとして与えられるようにすることで、型違いで同じ内容のクラスや関数を生成できるという仕組み。上手く使うとクラスや関数を型の数だけ定義する手間が省ける。 日本語だと総称的プログラミング(generic programming)。 活用…