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: |

Unlimited members in Telegram group now

Telegram has made it easier for its users to communicate, as it has introduced a feature that allows more than 200,000 users in a group chat. However, if the users in a group chat move past 200,000, it changes into "Broadcast Group", but the feature comes with a restriction. Groups with close to 200k members can be converted to a Broadcast Group that allows unlimited members. Only admins can post in Broadcast Groups, but everyone can read along and participate in group Voice Chats," Telegram added.

Why Telegram?

Telegram has no known backdoors and, even though it is come in for criticism for using proprietary encryption methods instead of open-source ones, those have yet to be compromised. While no messaging app can guarantee a 100% impermeable defense against determined attackers, Telegram is vulnerabilities are few and either theoretical or based on spoof files fooling users into actively enabling an attack.

C 1001 notes from fr


Telegram C# 1001 notes
FROM USA