LoginSignup
0
1

More than 5 years have passed since last update.

C# / Unity2D 学んだこと #2

Posted at

C#

構造体

  • 値型、つまりスタックに積まれるタイプのクラス的なやつ
  • デフォルトコンストラクタ、デストラクタを開発者が定義することは出来ない
  • 変数宣言、もしくはnewによるインスタンスの生成で作ることが出来る
  • 構造体のメンバに参照型のフィールドがある場合は、newで作成しないとエラーになる、とあるがwandboxで試した感じ、エラーにならなかった…
using System;

struct Boge
{
  public Hoge hoge; 
}

class Hoge
{  
  public static void Main(string[] args)
  {
    Boge boge;
    var hoge = boge.hoge;
  }
}

色々な初期化子

using System;

struct Boge
{
  public int Count { get; set; }
}

class Hoge
{  
  public static void Main(string[] args)
  {
    var boge = new Boge { Count = 10 };
    Console.WriteLine(boge.Count);
  }
}
using System;
using System.Collections.Generic;

class Hoge
{  
  public static void Main(string[] args)
  {
    var list = new List<int> { 1, 2, 3 };
    Console.WriteLine(list[2]);

    var dict = new Dictionary<string, int> { ["test"] = 3, ["test2"] = 2 };
    Console.WriteLine(dict["test"]);
  }
}

ジェネリクス

  • 魔物がひそむところだ
  • erasableではない!(つまり実行時にリフレクションで型情報を得ることが出来る)
    • Javaは実行時に消えてしまう…
  • in/outについては、まだ理解が及ばない

Unity2D

Unityのソースコード

  • Unityは基本クローズドソース
    • 大手企業なら提供されて読めるのだろうか?
  • なので、Android開発でよくやる、プラットフォームが提供しているクラスのソースコードを読んでパクったりちょっといじるのは難しそう
  • ただ、ググるとデコンパイルしたソースコードをGithubにあげている御方がいらっしゃる
  • https://github.com/MattRix/UnityDecompiled
  • READMEを見る限り、Unityの中の人に許可は取ったよ!という感じらしい
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1