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 | |
} |
頻繁に使うことはないでしょうが、覚えておくと他のコードを読み解くときに役に立つかもしれません。
次回は、C#5について。
CITY 8巻
僕のヒーローアカデミア 24巻
メイドインアビス(8)
ハクメイとミコチ 7巻
0 件のコメント :
コメントを投稿