这是我想做的一个例子:
MessageBox.Show("Error line number " + CurrentLineNumber);
在上方的代码中CurrentLineNumber,应该是这段代码的源代码中的行号。
CurrentLineNumber
我怎样才能做到这一点?
在.NET 4.5 / C#5中,通过编写使用新调用者属性的实用程序方法,可以使编译器为您完成此工作:
static void SomeMethodSomewhere() { ShowMessage("Boo"); } ... static void ShowMessage(string message, [CallerLineNumber] int lineNumber = 0, [CallerMemberName] string caller = null) { MessageBox.Show(message + " at line " + lineNumber + " (" + caller + ")"); }
这将显示,例如:
第39行的Boo(SomeMethodSomewhere)
还[CallerFilePath]可以告诉您原始代码文件的路径。
[CallerFilePath]