日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

林子大了,什么鸟都有----.NET运用String的十八层境界

發(fā)布時(shí)間:2023/12/1 asp.net 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 林子大了,什么鸟都有----.NET运用String的十八层境界 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

林子大了,什么鳥都有----.NET運(yùn)用String的十八層境界

  在上一文中,提到了一句相當(dāng)常見但十分荒謬的代碼:Request.QueryString["id"].ToString()。突然涌起一個(gè)想法,為什么不總結(jié)一下不同層次.Net開發(fā)者如何運(yùn)用string的呢?

  古往今來(lái),文本處理一直是所有編程語(yǔ)言的最基礎(chǔ)的功能,也是最核心最重要的功能。任何初學(xué)者,如果想學(xué)一門編程語(yǔ)言,都要面對(duì)大量的文本處理。而或許有一天,即使你成了大師級(jí)的人物,也不敢說(shuō)自己駕馭文本處理的能力,就已登峰造極。對(duì)String理解和運(yùn)用,應(yīng)該可以很好地代表開發(fā)者的專業(yè)水平。

  寫Request.QueryString["id"].ToString()的顯然屬于比較初級(jí)的層次,那么專業(yè)一點(diǎn)的層次有什么表現(xiàn)呢?在本文,就試圖歸納劃分一下這水平的層次或境界,并抓些現(xiàn)行給大家參考。

一、入門級(jí)

第一層

初涉江湖。String就是這樣:string s =”abc”,帶倆雙引號(hào)這就是個(gè)String。有天分很快發(fā)現(xiàn)string還可以相加。

但是,一說(shuō)到說(shuō)什么引用類型?值類型?唉,我好模糊啊……

第二層

不變應(yīng)萬(wàn)變。label1.Text = n,報(bào)錯(cuò)說(shuō)類型不兼容?原來(lái)還要ToString()一下。于是吐絲準(zhǔn)成了此類.Net程序員的必殺技,Request.QueryString[id].ToString()就是最常見的例子。

第三層

如魚得水。學(xué)會(huì)用Convert.ToInt32之類方法轉(zhuǎn)換字符串,轉(zhuǎn)過(guò)去,轉(zhuǎn)回來(lái)。

來(lái)挖挖墳,看看早期的.Net程序員就已十分專業(yè):?如何把string解析為int??好在初學(xué)C#時(shí)我沒(méi)看到此文。

第四層

世界真奇妙。光個(gè)String類型就有這么多方法,這怎么記不住啊,每個(gè)都?jí)蜓芯總€(gè)幾天,比如?關(guān)于string.Join()的妙用與疑惑?、String.Substring()使用注意, 還有分析Trim、IndexOf、Split等等不逐一列舉了,過(guò)去都是園子首頁(yè)的常客。

(題外話:一下子都研究明白了生活就沒(méi)意思了,經(jīng)常驚嘆下“原來(lái)還有這個(gè)”不是挺好的)

二、菜鳥級(jí)

第五層

聽說(shuō)了字符串不要+拼接,要用StringBuilder,不然效率太低。

這篇還不錯(cuò),不過(guò)題目有點(diǎn)浮:徹底研究StringBuilder。StringBuilder要徹底研究還真不簡(jiǎn)單,不過(guò)除了極懶的一小撮外,基本算是普及了。

第六層

會(huì)用靜態(tài)方法啦:比如String.IsNullOrEmpty,但是對(duì)String.Format方法,還是要糾結(jié)好久吧。要是你會(huì)String.Concat,會(huì)區(qū)別它與StringBuilder用的場(chǎng)合,恭喜你,你的水平離.Net社區(qū)牛人—老趙也就差一年多了(?重談字符串連接性能?)。

第七層

ToString的格式輸出,名堂真多:C代表錢,D代表整數(shù),E是指數(shù),F是小數(shù),y是年,大寫M是月,小寫m是分鐘……? 這哪記得住?

其實(shí),能記住前幾種就不錯(cuò)了,知道用時(shí)去查就好(C# 格式化字符串)。尤其,要分清大MM和小mm的區(qū)別。只需三分鐘,飛越第七層。

第八層

開始從多個(gè)場(chǎng)景,如文件中,取得字符串。了解很多該用String表示的東西,很多不是String的東西,心有靈犀一點(diǎn)通,告別了盲目的類型轉(zhuǎn)換。

此層說(shuō)深不深,可以一跳而過(guò);說(shuō)淺不淺。我們公司有個(gè)WebService項(xiàng)目超級(jí)規(guī)范,全部方法參數(shù)、全部返回的實(shí)體屬性清一色的string類型。對(duì)讀取文件,至今許多有多年開發(fā)經(jīng)驗(yàn)同行的仍然云里霧里,應(yīng)該也包括偶。一個(gè)博問(wèn)中問(wèn)題:請(qǐng)教200M大的TXT文件如何快速讀取,有誰(shuí)能迅速給出標(biāo)準(zhǔn)實(shí)現(xiàn)的?

三、上手級(jí)

第九層:

學(xué)會(huì)了翻轉(zhuǎn)字符串,真的!恭喜,根據(jù)磚家定義,你已超越北大菜鳥級(jí)別了(為什么我要反對(duì)北大青鳥)。

第十層:

會(huì)用foreach遍歷String中的字符,明白了編碼方式?jīng)Q定字符串中的字符,是一個(gè)字節(jié),還是兩個(gè)或更多。

編碼是個(gè)大學(xué)問(wèn),偶一看就暈,就這么湊合著過(guò)了吧。您力所能及的話,還是建議深入了解下:字符集和字符編碼(Charset & Encoding)

第十一層:

開始從流中讀取字符串,偶爾還會(huì)重寫下ToString方法 (文件流轉(zhuǎn)換為string?)。

流是現(xiàn)代編程語(yǔ)言的最重要的基本對(duì)象模型,和String地位相當(dāng)。接觸了這兩者之間的聯(lián)系,對(duì)一門語(yǔ)言的認(rèn)識(shí)開始立體起來(lái)。

第十二層:

處理的字符串工作日漸繁重,直到一天發(fā)現(xiàn)了正則表達(dá)式,腰不酸了,腿不疼了。

我看的是這種正則表達(dá)式30分鐘入門教程,結(jié)果花了無(wú)數(shù)個(gè)30分鐘,還是沒(méi)入門。不過(guò)還是值的,確實(shí)有時(shí)候比寫代碼處理容易得多,甚至是救命稻草,此時(shí)更高端的我們都不會(huì)。

四、達(dá)人級(jí)

第十三層:

一日突然被問(wèn)到:string a = “a”+ “b”分配了幾次內(nèi)存?

蒙了,String是什么,Immutable、引用類型、拘留池、程序域,概念大爆發(fā)開始了。

年前的面試經(jīng)歷(二)?,獻(xiàn)丑一下,精彩的是評(píng)論。

第十四層:

見到不是一個(gè)字符串,而是對(duì)一組編碼字節(jié)的引用,是所謂見山不是山。

[你必須知道的.NET]第二十二回?中的一段話 “string真是一個(gè)豐富而多彩的技術(shù)倉(cāng)庫(kù),飽含了.NET技術(shù)中很多精髓與技巧"。

第十五層:

諸如BinaryReader(Writer)/StringReader(Writer),都已不在話下。

看老趙的隨筆:淺談字節(jié)序(Byte Order)及其相關(guān)操作。

第十六層:

開始在String類源代碼中尋找疑問(wèn)的答案。

.Net Discovery 系列之一--string從入門到精通

五、大師級(jí)

第十七層:

無(wú)招勝有招,這種境界,打自動(dòng)機(jī),寫編譯器,跟玩似的。

園中的腦袋,大概接近了此境界:自己動(dòng)手開發(fā)編譯器(一)編譯器的模塊化工程?。

第十八層:

見山還是山。重寫個(gè)String類型都毫無(wú)壓力了吧,其實(shí)什么類型方法都成了浮云。傳說(shuō)中的境界……

腦袋的級(jí)別再往上,或許變成了這樣:

不要崇拜哥,哥只是傳說(shuō)。

轉(zhuǎn)載于:https://www.cnblogs.com/shenzhenjia/archive/2011/07/29/2121601.html

總結(jié)

以上是生活随笔為你收集整理的林子大了,什么鸟都有----.NET运用String的十八层境界的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。