C#7.0 では、関数内に関数を記入できるようになるようです。
ちなみに、関数内の関数内にも関数が書けるようです。<---わかりにくい。。。
あと、関数なので当たり前かもしれませんが、CallerFilePathの属性なんかも使えます。
まぁ、その場合は、呼び出し元なので、「WriteLine」関数を指し示します。
using System;
using System.Runtime.CompilerServices;
namespace ConsoleApp1v15
{
class Sample
{
static void Main()
{
void Method()
{
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);
Console.WriteLine(s);
}
WriteLine("message");
}
Method();
}
}
}
結果
c:\Projects\ConsoleApp1v15\ConsoleApp1v15\Program.cs:19 - Method: message
0 件のコメント:
コメントを投稿