挖一挖C#中那些我們不常用的東西之系列(3)——StackTrace,Trim

一線碼農發表於2014-03-30

  

       時間太快了,三月又要過去了,告別一下。。。繼續期待生死未卜的四月,今天我們繼續挖一挖。

一: 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 Person
14     {
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();

  

  好了,大體就這樣了,沒什麼技術含量,重點就是挖一挖,或許對你有用~

 

 

相關文章