CallerMemberName
Атрибуты вызывающего лежат в
System.Runtime.CompilerServices.
Параметр с
CallerMemberName
необязательный: компилятор
подставляет значение, если аргумент
не передали. Путь к файлу -
CallerFilePath,
номер строки -
CallerLineNumber.
Синтаксис
using System.Runtime.CompilerServices;
void Method([CallerMemberName] string name = "")
Пример
Давайте вызвать метод из
Main без аргумента:
using System;
using System.Runtime.CompilerServices;
class Program
{
static void Show([CallerMemberName] string name = "")
{
Console.WriteLine(name);
}
static void Main()
{
Show();
}
}
Результат выполнения кода:
"Main"
Пример
Давайте передать имя явно:
using System;
using System.Runtime.CompilerServices;
class Program
{
static void Show([CallerMemberName] string name = "")
{
Console.WriteLine(name);
}
static void Main()
{
Show("abcde");
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте вызвать метод из другого члена:
using System;
using System.Runtime.CompilerServices;
class Program
{
static void Show([CallerMemberName] string name = "")
{
Console.WriteLine(name);
}
static void Run()
{
Show();
}
static void Main()
{
Run();
}
}
Результат выполнения кода:
"Run"
Смотрите также
-
CallerFilePath,
файл вызывающего -
CallerLineNumber,
строка вызывающего -
CallerArgumentExpression,
текст аргумента -
Obsolete,
устаревший код