程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#中string用法實例詳解

C#中string用法實例詳解

編輯:C#入門知識

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用法能起到必定的贊助和自創感化。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved