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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

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

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

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

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

  古往今來,文本處理一直是所有編程語言的最基礎的功能,也是最核心最重要的功能。任何初學者,如果想學一門編程語言,都要面對大量的文本處理。而或許有一天,即使你成了大師級的人物,也不敢說自己駕馭文本處理的能力,就已登峰造極。對String理解和運用,應該可以很好地代表開發者的專業水平。

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

一、入門級

第一層

初涉江湖。String就是這樣:string s =”abc”,帶倆雙引號這就是個String。有天分很快發現string還可以相加。

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

第二層

不變應萬變。label1.Text = n,報錯說類型不兼容?原來還要ToString()一下。于是吐絲準成了此類.Net程序員的必殺技,Request.QueryString[id].ToString()就是最常見的例子。

第三層

如魚得水。學會用Convert.ToInt32之類方法轉換字符串,轉過去,轉回來。

來挖挖墳,看看早期的.Net程序員就已十分專業:?如何把string解析為int??好在初學C#時我沒看到此文。

第四層

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

(題外話:一下子都研究明白了生活就沒意思了,經常驚嘆下“原來還有這個”不是挺好的)

二、菜鳥級

第五層

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

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

第六層

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

第七層

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

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

第八層

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

此層說深不深,可以一跳而過;說淺不淺。我們公司有個WebService項目超級規范,全部方法參數、全部返回的實體屬性清一色的string類型。對讀取文件,至今許多有多年開發經驗同行的仍然云里霧里,應該也包括偶。一個博問中問題:請教200M大的TXT文件如何快速讀取,有誰能迅速給出標準實現的?

三、上手級

第九層:

學會了翻轉字符串,真的!恭喜,根據磚家定義,你已超越北大菜鳥級別了(為什么我要反對北大青鳥)。

第十層:

會用foreach遍歷String中的字符,明白了編碼方式決定字符串中的字符,是一個字節,還是兩個或更多。

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

第十一層:

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

流是現代編程語言的最重要的基本對象模型,和String地位相當。接觸了這兩者之間的聯系,對一門語言的認識開始立體起來。

第十二層:

處理的字符串工作日漸繁重,直到一天發現了正則表達式,腰不酸了,腿不疼了。

我看的是這種正則表達式30分鐘入門教程,結果花了無數個30分鐘,還是沒入門。不過還是值的,確實有時候比寫代碼處理容易得多,甚至是救命稻草,此時更高端的我們都不會。

四、達人級

第十三層:

一日突然被問到:string a = “a”+ “b”分配了幾次內存?

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

年前的面試經歷(二)?,獻丑一下,精彩的是評論。

第十四層:

見到不是一個字符串,而是對一組編碼字節的引用,是所謂見山不是山。

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

第十五層:

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

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

第十六層:

開始在String類源代碼中尋找疑問的答案。

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

五、大師級

第十七層:

無招勝有招,這種境界,打自動機,寫編譯器,跟玩似的。

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

第十八層:

見山還是山。重寫個String類型都毫無壓力了吧,其實什么類型方法都成了浮云。傳說中的境界……

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

不要崇拜哥,哥只是傳說。

轉載于:https://www.cnblogs.com/shenzhenjia/archive/2011/07/29/2121601.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。