(この記事の使用環境: Unity2017.1.0b6 Personal、Visual Studio Community 2017, Windows10)
こちらの記事 で紹介したとおり、Unity2017.1.0のベータ版でも設定を行えばC#6.0の機能を使えるようです。
今回は、C#6.0の新機能(というか記法)をいくつか実際に試してみたので、その備忘録です。
■ 参考文献
C# 6 の新機能 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
http://ufcpp.net/study/csharp/ap_ver6.html?p=1
■テストしてみたコード
こんな感じで試してみました。それぞれの記述の意味は参考文献をご確認ください。
実行結果はこんな感じ(UnityEditorのコンソールに出力)。
文字列挿入とnameof演算子は便利なのですぐにでも使いたいと思いました。
特にnameof演算子を使うとInvokeやSendMessageをタイプセーフな形で記述できるので、すごく助かりそうです。
Unity2017.1.0正式版リリースが待ち遠しいですね。
今回は以上です。
こちらの記事 で紹介したとおり、Unity2017.1.0のベータ版でも設定を行えばC#6.0の機能を使えるようです。
今回は、C#6.0の新機能(というか記法)をいくつか実際に試してみたので、その備忘録です。
■ 参考文献
C# 6 の新機能 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
http://ufcpp.net/study/csharp/ap_ver6.html?p=1
■テストしてみたコード
こんな感じで試してみました。それぞれの記述の意味は参考文献をご確認ください。
using System.Collections; using System.Collections.Generic; using UnityEngine; using static UnityEngine.Random; // using static の宣言 using static UnityEngine.Debug; // using static の宣言 //using D = UnityEngine.Debug; // エイリアスの使用(以前から使える) //using R = UnityEngine.Random; ///<summary>C#6.0の新機能テスト</summary> public class CSharp6_0_Test : MonoBehaviour { // 自動プロパティの拡張(初期化子 および getterのみの自動プロパティ) public int BaseNum { get; } = 1; // setterがないのでreadonlyと同じような扱いになる void Start () { int num = 3; // BaseNum = 5; // エラーになる(プロパティ BaseNum には setter がないため) // 文字列挿入 Debug.Log ( $"{BaseNum} + {num} = {AddNum ( num )} です" ); // nameof演算子 Debug.Log ( $"{nameof ( BaseNum )} : {BaseNum}, {nameof ( num )} : {num}" ); Debug.Log ( $"{nameof ( AddNum )}({nameof ( num )}) の計算結果です" ); // using static の使用 Log ( Range ( 0, 10 ) ); // これと同じ → Debug.Log ( Random.Range ( 0, 10 ) ); // D.Log ( R.Range ( 0, 10 ) ); // エイリアスを使った書き方(以前から使える) // (練習) nameof演算子でInvokeしてみる InvokeRepeating ( nameof ( ShowBaseNum ), 1f, 1f ); // SendMessage ( nameof ( ShowBaseNum ) ); // SendMessageも同様に使える } // --- expression-bodiedな関数メンバー ----------------------- // 足し算する int AddNum ( int n ) => BaseNum + n; // Debug.Logする void ShowBaseNum () => Debug.Log ( $"{nameof(BaseNum)} : {BaseNum}" ); }
実行結果はこんな感じ(UnityEditorのコンソールに出力)。
文字列挿入とnameof演算子は便利なのですぐにでも使いたいと思いました。
特にnameof演算子を使うとInvokeやSendMessageをタイプセーフな形で記述できるので、すごく助かりそうです。
Unity2017.1.0正式版リリースが待ち遠しいですね。
今回は以上です。
(管理情報:MyProjects\3D_Test\Unity2017_1_0_b6_Test2)
コメント