標籤:
剛好兩個都在尋找,發現有個作者上傳了一個這樣的程式(估計原程式作者也沒運行就直接傳上去了,我直接粘貼啟動並執行時候好幾處錯誤,自己就修改了一下),上程式
class Preson { public string firstName; public string middleName; public string lastName; //定義3個私人變數 firstName middleName lastName /*public Preson(string fn,string mn,string ln) //建構函式 { firstName=fn; middleName=mn; lastName=ln; }*/ public void displayFullName() //定義一個方法名 { StringBuilder FullName =new StringBuilder(); //執行個體化FullName FullName.Append(firstName); //FullName =FullName+firstName Full為空白 所有只顯示FirstName FullName.Append(" "); //FullName =FullName +"空格" FullName 已經包含firstName的值 if(middleName[0] != null ) //如果中間名的第一數組裡字元非空則向下運行 否則跳出此IF語句 { FullName.Append("."); //滿足條件則繼續FullName = FullName +"." FullName.Append(lastName); //FullName= FullName + lastName的值 Console.WriteLine(FullName); //輸出FullName Console.ReadKey(); } } }
建構函式是對類的一個補充,記住是類,可以參考我另外一個類和結構的區別。當然可有可無,有的話方便些,具體看情況啦
上主程式
static void Main(string[] args) { //Preson me = new Preson("Bradley", "Lee", "Jones"); //執行個體化 Preson me = new Preson(); me.firstName = "liu"; me.middleName = "lin"; me.lastName = "ru"; me.displayFullName(); //調用該函數 }
程式可能有點問題顯示不全名字,我也懶得調了,感興趣的自己調試一下,這個程式其實最大的意義就是建構函式的應用了,呵呵
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
以下是對StringBuilder的解釋 來自於百度解釋的很清楚後面會給出連結的
Stringbuilder類是直接用於字串操作的類,打個比方把
(1)string aa="123456";
(2)aa+="789";
(3)StringBuilder text=new StringBuilder("123456",12);
(4)text.Append("789");
如果你輸出aa,和text 你會發現他們的輸出內容是一樣的。
但是aa的操作過程實際上是:首先在記憶體中分配一個地址空間,空間大小是6。
然後執行 aa+="789";的操作,該過程是連接字串,“123456”和“789”並且在記憶體中重新分配地址。把aa 的記憶體位址指向 “123456789”的記憶體位址。
也就是說在記憶體中實際上是有兩個空間北分配,第一的記憶體空間,在後來是由C#的垃圾處理機制來自動處理掉,
如果我們用3 4 句的程式來實現這個過程,那麼他是沒有再次分配記憶體空間的,
他就是在text的記憶體空間裡進行了操作。這裡要說明下StringBuilder在生命變數的過程中是可以我們自己來分配他的大小的,如果實際的內容超出記憶體空間,
他會自動翻倍。
通過上面的例子,我們可以知道 StringBuilder的優越性是在:
第一:他不需要每次都去分配記憶體空間。所以系統就沒有必要去處理垃圾;
第二:當我們需要多次的對一個字串進行多次操作的時候,他的效率要遠遠 高 與string
http://zhidao.baidu.com/link?url=lMw8QIvJx-7_G-swkgYC4-HgFyDFY9jGjpw2Ft1IAOptJV_jQt6zpsW_RaVTpU4z0p_zf8-p1N8p7ayeuHlNba(作者解釋的很清楚,以至於我懷疑微軟是不是這個意思,後來感覺自己多慮了)
Append的話自己去領悟吧
StringBuilder和Append的一個程式及一個基礎概念