ExecutingMethodName
предназначен для печати имени метода вызывающего. Например:Как распечатать имя текущего исполняемого метода с помощью вспомогательного метода?
static void Main(string[] args){Auxiliary.ExecutingMethodName();}
следует распечатать главную.static void Foo(){Auxiliary.ExecutingMethodName();}
следует распечатать Foo.
static class Auxiliary
{
public static void ExecutingMethodName()
{
Console.WriteLine(new StackFrame(0).GetMethod().Name);
}
}
class Program
{
static void Main(string[] args)
{
Auxiliary.ExecutingMethodName();// should print Main
}
static void Foo()
{
Auxiliary.ExecutingMethodName();// should print Foo
}
}
Вопрос
Текущая реализация выше всегда печати ExecutingMethodName
, что не то, что я хочу. Как распечатать текущее имя метода выполнения с помощью вспомогательного метода?
Проголосовали против. Хорошая идея. Какова цель инициализации 'callerName = null'? –
«Вы применяете атрибут CallerMemberName к необязательному параметру, который имеет значение по умолчанию. Вы должны указать явное значение по умолчанию для необязательного параметра. Вы не можете применить этот атрибут к параметрам, которые не указаны как необязательные». из предоставленной ссылки MSDN. –