C#中string用法實例詳解。本站提示廣大學習愛好者:(C#中string用法實例詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中string用法實例詳解正文
在停止C#法式設計時,用的最多的莫過於string了,但有些時刻因為不細心或許基本的不穩固等身分輕易失足,明天本文就來較為具體的總結一下C#中string的用法。詳細以下:
1.string是一個援用類型,日常平凡我們比擬string對象,比擬的是對象的值而不是對象自己
以下面代碼所示:
string strA="abcde"; string strB="abc"; string strC="de"; Console.WriteLine(strA == (strB+strC));//true Console.WriteLine((object)strA == (object)(strB+strC));//false
由於字符串內容雷同但援用的不是統一個實例
2.string對象是弗成修正的
以下代碼所示:
string strA="abcde"; strA="aaaaa";
從外面上看似修正了strA的內容,現實上"abcde"沒有被修正,而是重新創立了一個對象"aaaaa",然後把該對象的援用賦給strA,最初"abcde"會被作為渣滓收受接管。
3.string的創立
直接賦值:
string strA="abcde";//創立一個內容為abcde的string對象,然後將該對象的援用賦給strA
結構:
char[] arr={'a','b','c','d','e'}; string strA=new string(arr);//這裡只羅列一種
留意:沒有String str=new String("abcde");如許的結構,string 是 .NET Framework 中String的別號。
4.string參數傳遞
string是援用類型,我們試圖在一個函數裡轉變這個值
測試代碼以下:
static void Main(string[] args) { string strA = "abcde"; Deal(strA); Console.WriteLine(strA); Console.ReadLine(); } static void Deal(string str) { str = str.Substring(0, 2); }
運轉成果:abcde
緣由是經由過程值傳遞援用類型的參數時,有能夠更改援用所指向的數據,如某類成員的值。但沒法更改援用自己的值,經由過程ref症結字傳遞參數可處理該成績。
修改後的代碼以下:
static void Main(string[] args) { string strA = "abcde"; Deal(strA); Console.WriteLine(ref strA); Console.ReadLine(); } static void Deal(ref string str) { str = str.Substring(0, 2); }
成果:ab
此時傳遞的是援用自己,而不是正本
5.null 字符串和空字符串
null 字符串:沒有分派內存;空字符串分派了內存,但內存外面沒稀有據.
測試代碼以下:
static void Main(string[] args) { string strA = "1"; string strB = string.Empty; string strC = null; Console.WriteLine(int.Parse(strA));//准確 Console.WriteLine(int.Parse(strB));//輸出字符串的格局不准確 Console.WriteLine(strC.ToString());//未將對象援用設置到對象的實例。 Console.ReadLine(); }
內置辦法字符串能否為 null 或為空:
IsNullOrEmpty同等於 if (str == null || str.Equals(String.Empty))
IsNullOrWhiteSpace同等於 if (str == null || str.Equals(String.Empty) || str.Trim().Equals(String.Empty))
6.StringBuilder
現看以下測試代碼:
string strA="abc" for(int i=0;i<10000;i++) { strA+="abc"; } Consolse.WriteLine(strA);
雖然該代碼會湧現以應用字符串串連來將新的字符追加到定名為 strA 的現有字符串,它現實上會為每一個串連操作創立新的 String 對象。年夜年夜的下降了機能。可以使用 StringBuilder 類取代String 類屢次更改字符串值,StringBuilder 對象是可變的,當停止追加或刪除字符串中的子字符串時,不會創立新的對象,而是在本來的對象長進行修正。 完成 StringBuilder 對象的值的修正後,可以挪用其 StringBuilder.ToString 辦法將其轉換為字符串
修正後的測試代碼以下:
StringBuilder strA=new StringBuilder(); for(int i=0;i<10000;i++) { strA.Append("abc"); } Consolse.WriteLine(strA.ToString());
信任本文所述實例關於年夜家穩固控制C#的string用法能起到必定的贊助和自創感化。