忍者ブログ

素人ゲーム開発を垂れ流しつつ、覚醒に至るまでの記録や役立ち情報、愚痴を書くブログ。ちなみに前立腺の開発もやっている。

Unity、というかC#を勉強中
以前にも書いたように、UnityにはECSと言うものがありまして
そちらを使うために今まで使ってこなかった命令を勉強中です。


基本的にこのECSは「MonoBehaviour」を使わない(最終的には変換時使う?)
方法を使うようで、その命令の一部に「抽象クラス(abstract)」と言うものが
出てきます。スクリプトを作る際、継承自体Unityでは基本的に「MonoBehaviour」
をデフォルトで継承しているので継承系の命令も使わないし
抽象クラスの中身に出てくる「TestClass<T>」のような、いわゆるジェネリック型(と言うらしい)
の理解も全くしていないものが出てきます。



実際はUnityの「Monobehaviour」でも使われていたんですが、この「< >」の意味が分からないまま
使っていましたってのが正確な表現でしょうか。


Unityでなくとも「リスト(配列)」などでも使ってますね。


// 配列
var List   =   new  List<string>();


又は・・・
// コンポーネント
Text Getcomponent<Text>();





この用に知らず知らずの内に使っていたものの、実際
何なのかがよく分からないでいました。


これをジェネリックと言うみたいなのですが(薬のほうじゃない)
なんと・・・関数の定義側の引数の型
が自在に変えられるもののようです!


ちょっとこれでは説明が良く分かりませんね。



この場合は「Getcomponent<Text>()」ですが
分かりやすいように敢えて関数として例えますね。



main
{
     Test<int>();
}



// 関数の定義

void Test(String string)
{                ↑この型がintに変わる!!!
   


     String a = string;
       ↑この型がintに変わる!!
}



このような事になっているようです。
こちらは関数ではなくメソッドですが
Getcomponent<Text>();

この場合、<>で囲われた中に書いた型が上のStringの引数から
Text型に変化する様です。C言語系は定義してる側の引数の型が固定
と言うのが常識ですが、この部分を自在に変えることが出来るみたいなんですね~


public Class Test<T>
{
  // メソッド
     public T Method(T val){
         

         var T resault = val ;
         return val;
     }
}



このように「T」の部分が、変化します。
インスタンス化して
Test test = new Test();


このように書いた後、
test.Method<Text>("文字")

と書いた場合に、上の様にMethodの定義した「T」の部分が
全てText変換されてしまうという事らしいです。
()の中の"文字"は、Testクラスの中に作ったmethod関数の定義の
Tの部分がTextに変換され、引数である()の"文字"内部で
Text型"文字"として処理される模様。







PR
COMMENT
NAME
TITLE
MAIL (非公開)
URL
EMOJI
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
COMMENT
PASS (コメント編集に必須です)
SECRET
管理人のみ閲覧できます
 
  
ブログ内検索
最新コメント
[10/06 ダージリン]
[10/03 ゼン]
[10/01 ダージリン]
[09/25 ゼン]
[12/20 ダージリン]
プロフィール
HN:
kawaハギ
年齢:
36
性別:
男性
誕生日:
1989/07/03
職業:
無職
趣味:
ゲーム 音楽
自己紹介:
人類を5次元意識へ押しあげる為のゲームを
開発しています。

小学生3年頃から鬱を発症。対人恐怖症、醜形恐怖等で引きこもり。
生きる意味を長らく探し求め、ようやく答えを見つけスピリチュアル
にたどり着く。覚醒を数段階体験し現在は”もう一度”物理的な自立を目指しています。
カウンター
Copyright ©  -- 覚醒できるゲームを作るブログ --  All Rights Reserved

Design by CriCri / Material by petit sozai emi / powered by NINJA TOOLS / 忍者ブログ / [PR]