標籤:style blog http color 檔案 2014
原文:挖一挖C#中那些我們不常用的東西之系列(3)——StackTrace,Trim
時間太快了,三月又要過去了,告別一下。。。繼續期待生死未蔔的四月,今天我們繼續挖一挖。
一: Environment.StackTrace
可能我們看到最多的就是catch中的e參數,裡面會有一個StackTrace,然後不可否認的這玩意太有用了,它會把呼叫堆疊
中的資訊輸出出來,有了它,我們就可以快速的知道運行代碼的執行流並且快速的定位到問題。
有時候我們會遇到這樣兩個問題:
①:線上的bug在本地不能重現。
②:由於太多的多態,設計模式,程式員反而對線上的代碼執行流向會搞的稀裡糊塗的。
為了搞清楚並解決這兩個問題,我們看生產日誌的時候很在乎代碼的執行流以及想擷取當前內容相關的可疑變數值。擷取可疑的
變數值,這個好說,我們通過記錄一些變數值到log就可以了,但是怎麼記錄下當前語句的呼叫堆疊資訊呢?這篇就是我要介紹的一
個屬性,很簡單, 答案也就在標題上,下面我們看看代碼。
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Person person = new Person(); 6 7 person.Fly(); 8 9 Console.Read();10 }11 }12 13 class Person14 {15 public void Fly()16 {17 Fly("test");18 }19 20 public void Fly(string name)21 {22 Console.WriteLine("我的log日誌。\n\n{0}", Environment.StackTrace);23 }24 }
這不。。。檔案名稱,方法名,行數都已經脫褲了,也算是給我們看生產日誌時候的一把利器吧。
二:Trim
這個我想沒有程式員說不知道,但是裡面有一個重載,這個不知道有多少程式員知道~
可以看到,我可以去掉字串前後的指定字元,只要我在char[]中申請即可,而不是僅僅去掉空格,這次為什麼要提它,是因為前
幾天用asp對接.net的時候遇到的,在asp中有一個join方法,但是它不像C#中的String.Join(",")方法可以去掉尾部的“,” ,比如
數組{1,2,3},在asp中join後會變成“1,2,3,”,而C#中會變成"1,2,3",這個時候當asp傳過來的話,在C#中就可以用Trim來剔除
尾部的“,”了。
1 var s = "1,2,3,";2 3 var r = s.Trim(new char[] { ‘,‘ });4 5 Console.WriteLine(r);6 7 Console.Read();
好了,大體就這樣了,沒什麼技術含量,重點就是挖一挖,或許對你有用~