C# 基礎からマスターまで — 第1回
クラス、プロパティ、コレクションで始まるC#
本ブログ作成文は、講義を目指して製作されました。 また、作成された文章の情報も間違っている可能性がありますので、ご注意ください。
C#は.NET環境で動作する汎用プログラミング言語です。 文法はC系列と似ていますが、メモリ管理、文字列、コレクションなどの機能を標準ライブラリとランタイムが多く手助けします。
型と変数を明確に表現する
int level = 3;
float speed = 5.5f;
string playerName = "Rose";
bool isAlive = true;
C#は静的型言語であり、変数と値の型をコンパイルするときに確認します。 varを使用すると、右の値から型を推論しますが、変数の型が実行中に勝手に変わることはありません。
var scores = new List<int> { 10, 20, 30 };
//scoresはList<int>型です。
クラスはデータと動作を結び付ける
public class Player
{
public string Name { get; }
public int Health { get; private set; } = 100;
public Player(string name)
{
Name = name;
}
public void TakeDamage(int amount)
{
Health = Math.Max(0, Health - amount);
}
}
プロパティはフィールドのように読み書きできますが、アクセス範囲と検証ルールを指定できます。 上記のコードでは、外部Healthを読むことはできますが、直接変更することはできません。
コレクションと繰り返し
List<T>は順序付きの複数の値を保存し、Dictionary<TKey, TValue>はキーで値を探します。
var inventory = new Dictionary<string, int>
{
["Potion"] = 3,
["Key"] = 1
};
foreach (var item in inventory)
{
Console.WriteLine($"{item.Key}: {item.Value}");
}
C#の参照型オブジェクトは、Garbage Collectorが使用されていないメモリをクリーンアップします。 しかし、ファイル、ネットワーク接続などの外部リソースusingイナDisposeで寿命を明確に管理しなければならない。
C#を初めて学ぶときは、文法をすべて覚えるより小さいコンソールプログラムで、タイプ、条件文、繰り返し文、クラス、コレクションを連結してみるのが良い。 Unityはその上にゲームエンジンのライフサイクルとComponent構造を追加すると考えると理解しやすい。