basyura's blog

あしたになったらほんきだす。

CallerFilePath, CallerLineNumber, CallerMemberName attributes

using System;
using System.Runtime.CompilerServices;

class Class1 {
	static void Main(string[] args) {
		Hello();	
	}
	private static void Hello([CallerFilePath] string file = "", 
                                  [CallerLineNumber] int no = 0,
                                  [CallerMemberName] string name = "")
	{
		Console.WriteLine(file);
		Console.WriteLine(no);
		Console.WriteLine(name);
	}
}

出力結果

c:\Users\(略)\caller_attr.cs
6
Main

CallerMemberName とかめっちゃ便利じゃね?おもにプロパティ変更通知の定型メソッドとか。