Caller Info Attributes
This feature is rarely used — but it's incredibly useful for debugging, logging, and even automatic edit tracking.
Suppose you want to see who called which function on which line in which file — then you can use:
public void Log( string message, [CallerMemberName] string memberName = "", [CallerFilePath] string filePath = "", [CallerLineNumber] int lineNumber = 0) { Console.WriteLine($"{message} (Called from {memberName} in {filePath}, line {lineNumber})"); }
Now if you just say Log("Something went wrong");, that will also tell you where this call came from.
Database connection failed! (Called from Main in Program.cs, line 15)