[Unity] C#5 を使う

前回に続いて今回はC#5編

Caller Info 属性

デバッグ用で真価を発揮しそうです。

呼び出し元のソースファイルのフルパス
[CallerFilePath]

呼び出し元の行番号
[CallerLineNumber]

呼び出し元のメンバー名
[CallerMemberName]

関数の定義はこんな感じです。
public static void WriteLine(string message,
[CallerFilePath] string file = "",
[CallerLineNumber] int line = 0,
[CallerMemberName] string member = "")

サンプルを見たほうが早いpiyo
using System.Runtime.CompilerServices;
using UnityEngine;
public class CS5Test : MonoBehaviour
{
void Start()
{
WriteLine("Cs5Test");
// Output : C:\Users\Chigusa\Source\Repos\Prototypes\Assets\Sample\Scripts\CS5Test.cs:8 - Start: Cs5Test
}
#region Caller Info 属性
/// <summary>
/// Caller Info 属性
/// </summary>
/// <param name="message">メッセージ</param>
/// <param name="file">CallerFilePath: 呼び出し元のファイル名</param>
/// <param name="line">CallerLineNumber: 呼び出し元の行番号</param>
/// <param name="member">CallerMemberName: 呼び出し元のメンバー名(メソッド名、プロパティ名、イベント名等々)</param>
public static void WriteLine(string message,
[CallerFilePath] string file = "",
[CallerLineNumber] int line = 0,
[CallerMemberName] string member = "")
{
var s = string.Format("{0}:{1} - {2}: {3}", file, line, member, message);
Debug.Log(s);
}
#endregion
}
view raw CS5Test.cs hosted with ❤ by GitHub

やっぱりデバッグやツール用かな?
次はC#6

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

0 件のコメント :

コメントを投稿