[Unity] C#4 を使う

UnityもC#もどんどんバージョンアップ

Unityがバージョンアップしていくことで、C#7.3以上が使えるようになっています。たしか、Unity2018.3くらいからだったかも?
というわけでC#のバージョンに合わせて使えそうな記述法をメモしておきましょう。
今回はC#4で、C#7までめざしてやっていきたいと思います。

C#4

関数のオプション引数・名前付き引数

int Sum(int x = 0, int y = 0, int z = 0)
こんな感じの関数を呼び出すときに・・・
int value = Sum(1, 2, 3);
普通はこんな感じで呼び出すところを、
int value = Sum(x: 1, y: 2, z: 3);
と、引数を指定して呼び出すことができます。もちろん、
int value = Sum(y: 1, z: 2, x: 3);
と、順番をばらばらにすることもできます。

動的型付け変数

まずこの機能をUnityで使うには、Api Compatibility Level を ".Net 4.x" にする必要がありますので、気を付けましょう。設定がされていないとコンソールにも表示されると思います。
dynamic GetX(dynamic obj)
こんな感じの関数になります。呼び出すときは・・・
GetX(Vector3.one);
GetX(Vector2.one);
と、違う型を引数にすることができます。

関数の中身も併せてサンプルコードはこちら
using UnityEngine;
public class CS4Test : MonoBehaviour
{
void Start()
{
Debug.Log(Sum(x: 1, y: 2, z: 3)); // Sum(1, 2, 3); と同じ意味。
// Output : 6
Debug.Log(Sum(y: 1, z: 2, x: 3)); // Sum(3, 1, 2); と同じ意味。
// Output : 6
Debug.Log(Sum(y: 1)); // Sum(0, 1, 0); と同じ意味。
// Output : 1
Debug.Log(GetX(Vector3.one));
// Output : 1
}
#region 動的型付け変数 - Need Api Compatibility Level ".Net 4.x"
static dynamic GetX(dynamic obj)
{
return obj.x;
}
#endregion
#region オプション引数・名前付き引数
static int Sum(int x = 0, int y = 0, int z = 0)
{
return x + y + z;
}
#endregion
}
view raw CS4Test.cs hosted with ❤ by GitHub

頻繁に使うことはないでしょうが、覚えておくと他のコードを読み解くときに役に立つかもしれません。
次回は、C#5について。

CITY 8巻
僕のヒーローアカデミア 24巻
メイドインアビス(8)
ハクメイとミコチ 7巻

0 件のコメント :

コメントを投稿