トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

C#の本やる。

この本をばらばらとやっていく

 実戦で役立つ C#プログラミングのイディオム/定石&パターン

c#プログラミングのイディオム/定石&パターン

演習問題の解答は本には載ってないけど、下からコードをダウンロードできる。

https://gihyo.jp/book/2017/978-4-7741-8758-7/support

環境構築

ファイル>新規作成>プロジェクトでコンソールアプリを作る

f:id:bibinbaleo:20190710130105p:plain

プロジェクト名がnamspaceに自動でつく。

program.csが自動でできる。

この中に

static void Main(string[] args)
{}

が書いてある。

f:id:bibinbaleo:20190710130133p:plain

自分でスクリプトを追加するときはソリューションエクスプローラーのソリューション名右クリック>追加>クラスでできる。もしくはShift+Alt+C

f:id:bibinbaleo:20190710125611p:plain

名前を付ける

f:id:bibinbaleo:20190710125607p:plain

ファイル名がクラス名になる。

ソリューションエクスプローラーを消してしまったら上の「表示」から表示できる。

 

コンソール

Console.WriteLine("MyClass: ({0},{1})", myClass.X, myClass.Y);

Console.ReadKey();

値型と参照型

値型は変数に直接値を入れる

参照型は参照してるメモリのアドレスを入れている。

構造体は値型、クラスは参照型

大きいサイズのオブジェクトを入れるときは参照型。値型だと変数を代入するたびに中身をコピーしないといけなくて大変。

逆に小さいサイズのオブジェクトは、値型に入れたほうがメモリ効率がいい

構造体を自分で作ることはまずない。

 

static 静的メソッドはインスタンス化せずに使える

名前空間

namespace Tomasheep{

}

using Tomasheep;

継承

public class Enemy : Person{

}

クラスの頂点はObjectクラス