C#探秘系列(三)——StackTrace,Trim
一: Environment.StackTrace
可能我們看到最多的就是catch中的e參數(shù),里面會有一個StackTrace,然后不可否認(rèn)的這玩意太有用了,它會把調(diào)用堆棧中的信息輸出出來,有了它,我們就可以快速的知道運行代碼的執(zhí)行流并且快速的定位到問題。
有時候我們會遇到這樣兩個問題:
①:線上的bug在本地不能重現(xiàn)。
②:由于太多的多態(tài),設(shè)計模式,程序員反而對線上的代碼執(zhí)行流向會搞的稀里糊涂的。
為了搞清楚并解決這兩個問題,我們看生產(chǎn)日志的時候很在乎代碼的執(zhí)行流以及想獲取當(dāng)前上下文的可疑變量值。獲取可疑的變量值,這個好說,我們通過記錄一些變量值到log就可以了,但是怎么記錄下當(dāng)前語句的調(diào)用堆棧信息呢?這篇就是我要介紹的一個屬性,很簡單, 答案也就在標(biāo)題上,下面我們看看代碼。
class Program
{
static void Main(string[] args)
{
Person person = new Person();
person.Fly();
Console.Read();
}
}
class Person
{
public void Fly()
{
Fly("test");
}
public void Fly(string name)
{
Console.WriteLine("我的log日志。\n\n{0}", Environment.StackTrace);
}
}
![]() |
這不。。。文件名,方法名,行數(shù)都已經(jīng)脫褲了,也算是給我們看生產(chǎn)日志時候的一把利器吧。
二:Trim
這個我想沒有程序員說不知道,但是里面有一個重載,這個不知道有多少程序員知道~
可以看到,我可以去掉字符串前后的指定字符,只要我在char[]中申請即可,而不是僅僅去掉空格,這次為什么要提它,是因為前幾天用asp對接.net的時候遇到的,在asp中有一個join方法,但是它不像C#中的String.Join(",")方法可以去掉尾部的“,” ,比如數(shù)組{1,2,3},在asp中join后會變成“1,2,3,”,而C#中會變成"1,2,3",這個時候當(dāng)asp傳過來的話,在C#中就可以用Trim來剔除尾部的“,”了。
var s = "1,2,3,";
var r = s.Trim(new char[] { ',' });
Console.WriteLine(r);
Console.Read();
好了,大體就這樣了,沒什么技術(shù)含量,重點就是挖一挖,或許對你有用~
相關(guān)文章
Enterprise Library for .NET Framework 2.0緩存使用實例
這篇文章主要介紹了Enterprise Library for .NET Framework 2.0緩存使用實例,是進(jìn)行項目開發(fā)時非常有用的功能,需要的朋友可以參考下2014-08-08深入學(xué)習(xí)C#網(wǎng)絡(luò)編程之HTTP應(yīng)用編程(上)
這篇文章主要介紹了如何學(xué)習(xí)C#網(wǎng)絡(luò)編程之HTTP應(yīng)用編程的相關(guān)知識,文中講解的非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-06-06