Telegram Group & Telegram Channel
🖥 Малоизвестная функция C#: Caller Information

❗️ Функциональность Caller Information позволяет передавать в метод информацию о вызывающем его коде, например:

- Имя файла
- Номер строки в файле
- Имя вызывающего метода

🌟 Эта особенность может быть крайне полезной для логирования, отладки и тестирования кода. Хотя она существует с версии C# 5.0, о ней часто забывают.

Как это работает?

💡 Для получения информации о вызывающем методе используются специальные атрибуты:

🌟 [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
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/csharp_1001_notes/556
Create:
Last Update:

🖥 Малоизвестная функция C#: Caller Information

❗️ Функциональность Caller Information позволяет передавать в метод информацию о вызывающем его коде, например:

- Имя файла
- Номер строки в файле
- Имя вызывающего метода

🌟 Эта особенность может быть крайне полезной для логирования, отладки и тестирования кода. Хотя она существует с версии C# 5.0, о ней часто забывают.

Как это работает?

💡 Для получения информации о вызывающем методе используются специальные атрибуты:

🌟 [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

BY C# 1001 notes


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/csharp_1001_notes/556

View MORE
Open in Telegram


C 1001 notes Telegram | DID YOU KNOW?

Date: |

The Singapore stock market has alternated between positive and negative finishes through the last five trading days since the end of the two-day winning streak in which it had added more than a dozen points or 0.4 percent. The Straits Times Index now sits just above the 3,060-point plateau and it's likely to see a narrow trading range on Monday.

The messaging service and social-media platform owes creditors roughly $700 million by the end of April, according to people briefed on the company’s plans and loan documents viewed by The Wall Street Journal. At the same time, Telegram Group Inc. must cover rising equipment and bandwidth expenses because of its rapid growth, despite going years without attempting to generate revenue.

C 1001 notes from us


Telegram C# 1001 notes
FROM USA