標籤:show UI form extract mem bdd string static err
文章目的
介紹在.NET中取得程式碼數的方法
代碼
[STAThread]static void Main(string[] args){ ReportError("Yay!");}static private void ReportError(string Message){ StackFrame CallStack = new StackFrame(1, true); Console.Write("Error: " + Message + ", File: " + CallStack.GetFileName() + ", Line: " + CallStack.GetFileLineNumber());}
StackFrame(Int32, Boolean) 初始化與當前堆疊框架之上的幀相應的 StackFrame 類的新執行個體,能夠選擇捕獲源資訊。
GetFileName :擷取包括所運行代碼的檔案名稱。 該資訊通常從可運行檔案的偵錯符號中提取。
GetMethod :擷取在當中運行幀的方法。
GetFileLineNumber :擷取檔案裡包括所運行代碼的行號。 該資訊通常從可運行檔案的偵錯符號中提取。
利用Exception(例外)的StackTrace類
try{ throw new Exception();}catch (Exception ex){ // Get stack trace for the exception with source file information var st = new StackTrace(ex, true); // Get the top stack frame var frame = st.GetFrame(0); // Get the line number from the stack frame var line = frame.GetFileLineNumber();}
.NET4.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 + ")");}
在.NET中怎樣取得程式碼數