独習C#勉強メモ5

独習C#を読んで自分が知らなかったことまとめ

マルチスレッド処理


アプリはだいたいシングルスレッド(unityならawake().start()C#ならmain()みたいな)だけどネットワーク通信するとき処理が1個しか走らないんじゃ困るから個別に処理を走らせるためにある。 非推奨で触るべきじゃないけどThreadクラスというものもある。 スレッドの生成と実行をより改善したのがスレッドプール。 スレッドプールを使ったスレッドのことをタスクという。

[Read More]
Tags: VisualStudio unity 

独習C#勉強メモ4

独習C#を読んで自分が知らなかったことまとめ

デリゲート


デリゲードで表したメソッドはint型、string型みたいに引数とかに入れる事ができる。
//クラスの外で定義
delegate void DoDeligate(string str);

class DelegateTest
    {
        static void Heppoko(string s)
        {
            //Heppokoの処理内容
            Console.WriteLine(s);
        }
        static void StringCount(string s)
        {
            //StringCountの処理内容
            int num = s.Length;
            Console.WriteLine(num);
        }
        //プログラムが動いたとき一回だけこの中の処理が動く前提で例を書いている。

        void start()
        {
            //Heppokoメソッドが使える
            var v1 = new DoDeligate(Heppoko);
            //これは
            //DoDeligate del = method;
            //とも書ける。
            v1("へっぽこ太郎");
            //DoDeligateメソッドが使える
            var v2 = new DoDeligate(StringCount);
            v2("へっぽこ太郎");
        }
    }

マルチキャストデリゲート


デリゲートはメソッドを1個だけじゃなくて複数受け取ることもできる。 上のHeppoko,StringCountメソッドがある前提で例を書くと

[Read More]

独習C#勉強メモ3

独習C#を読んで自分が知らなかったことまとめ

アップキャスト


子クラスを親クラスに代入する。別に特別な構文は必要ない
//親クラス
class Person{
    //定義内容
}
//子クラス
class BusinessPerson : Person{
    //Personクラスを継承した小クラスの定義内容
}

Person p = new BusinessPerson();
//親クラスの中に小クラスのインスタンスをそのまま入れれる、

ダウンキャスト


小クラスに親クラスを入れる。(入れたいクラス名)、クラス名 as 入れたいクラス名とも書くことができる。asで書くと正しくキャストできない場合nullが帰ってくる。

[Read More]
Tags: VisualStudio 

独習C#勉強メモ2

独習C#を読んで自分が知らなかったことまとめ

メソッドのオーバーロード

オーバーロードとは、1つのクラスに同じ名前のメソッドを複数定義すること 引数によって処理を切り替えれる。


...
private string firstName;
private string lastName;

public void ShowName(string firstName)
{
    this.firstName = firstName;
}

public void ShowName(String firstName, string lastName)
{
    this.firstName = firstName;
    this.lastName = lastName;
}
...

デストラクタ

確実な初期化を実現する機能がコンストラクタならば、確実な終了処理を実現するのがデストラクタ。全然見る機会がなかったと思ったら、今はガベージコレクションとやらが勝手に掃除してくれるみたいです。

[Read More]