tg-me.com/csharp_1001_notes/556
Last Update:
Caller Information
позволяет передавать в метод информацию о вызывающем его коде, например:
- Имя файла
- Номер строки в файле
- Имя вызывающего метода[CallerFilePath]
— возвращает полный путь к исходному файлу, в котором был вызван метод.[CallerLineNumber]
— возвращает номер строки в файле, где был вызван метод.[CallerMemberName]
— возвращает имя метода или свойства, из которого был вызван метод.
Предположим, у нас есть метод Log
, который записывает сообщение в консоль вместе с информацией о вызове:
using System;
using System.Runtime.CompilerServices;
class Program
{
static void Main()
{
TestMethod();
}
static void TestMethod()
{
Log("Это тестовое сообщение");
}
static void Log(string message,
[CallerFilePath] string filePath = "",
[CallerLineNumber] int lineNumber = 0,
[CallerMemberName] string memberName = "")
{
Console.WriteLine($"Сообщение: {message}");
Console.WriteLine($"Файл: {filePath}");
Console.WriteLine($"Метод: {memberName}");
Console.WriteLine($"Строка: {lineNumber}");
}
}
Файл: C:\Users\...\Program.cs
Метод: TestMethod
Строка: 11
@csharp_1001_notes