麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

C#string詳解

2019-11-17 02:57:57
字體:
來源:轉載
供稿:網友

C#string詳解

平時用的最多的莫過于string了,但有時遇到的一些問題,不仔細想還真容易出錯,今天我就來總結一下string的用法。

1.string是一個引用類型,平時我們比較string對象,比較的是對象的值而不是對象本身

如:
string strA="abcde";string strB="abc";string strC="de";Console.WriteLine(strA == (strB+strC));//trueConsole.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的別名。

3.string參數傳遞

string是引用類型,我們試圖在一個函數里改變這個值

static void Main(string[] args){    string strA = "abcde";    Deal(ref strA);    Console.WriteLine(strA);    Console.ReadLine();}static void Deal(ref 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

此時傳遞的是引用本身,而不是副本

4.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))

5.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());

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: av性色全交蜜桃成熟时 | 在线成人免费观看视频 | 男女羞羞视频在线观看免费 | 久久精品欧美电影 | 成人在线观看免费高清 | 草草免费视频 | 久久久久久99 | 午夜视频国产 | 国产亚洲精品久久久久久久软件 | 国产资源在线视频 | h色网站在线观看 | 免费a级网站 | 黄视频网站免费在线观看 | 国产乱淫av片免费 | www.91sao| 羞羞视频入口 | 日本aaa一级片 | 一级在线观看视频 | 史上最强炼体老祖动漫在线观看 | 欧美一区在线观看视频 | 黄色片网站免费看 | 久久精品99北条麻妃 | 激情亚洲一区二区三区 | 一级毛片免费高清 | 中文字幕一二三区芒果 | 亚洲精品久久久久久久久久久 | 亚洲精品久久久久久久久久 | gril hd| 久久69精品久久久久久国产越南 | 91网站永久免费看 | 欧美国产一区二区三区激情无套 | 久久99精品久久久久久园产越南 | 538在线精品 | av懂色| 国产一区二区三区手机在线 | 精品久久久久久久久久久aⅴ | 动漫孕妇被羞羞视频 | 国产亚洲精品综合一区91555 | 日韩精品一区二区三区中文 | 免费观看黄视频 | 国产精品爱久久久久久久 |