又進入到了新的一周,現(xiàn)在到總結(jié)的時間了,繼續(xù)為大家總結(jié)一下今天在云和學院所學的知識。
理論:
StringBuilder 和 String 的區(qū)別 String 在進行運算時(如賦值、拼接等)會產(chǎn)生一個新的實例,而 StringBuilder則不會。所以在大量字符串拼接或頻繁對某一字符串進行操作時最好使用 StringBuilder,不要使用 String;如果要操作一個不斷增長的字符串,盡量不用String類,改用StringBuilder類。兩個類的工作原理不同:String類是一種傳統(tǒng)的修改字符串的方式,它確實可以完成把一個字符串添加到另一個字符串上的工作沒錯,但是在.NET框架下,這個操作實在是劃不來。因為系統(tǒng)先是把兩個字符串寫入內(nèi)存,接著刪除原來的String對象,然后創(chuàng)建一個String對象,并讀取內(nèi)存中的數(shù)據(jù)賦給該對象。這一來二去的,耗了不少時間。而使用System.Text命名空間下面的StringBuilder類就不是這樣了,它提供的Append方法,能夠在已有對象的原地進行字符串的修改,簡單而且直接。當然,一般情況下覺察不到這二者效率的差異,但如果你要對某個字符串進行大量的添加操作,那么StringBuilder類所耗費的時間和String類簡直不是一個數(shù)量級的。對象的引用int、decimal、bool、double byte 枚舉結(jié)構(gòu)等類型(值類型)是傳遞拷貝;對象(引用類型)則是傳遞引用。方法間傳遞對象 String 引用類型 數(shù)組 類結(jié)構(gòu)如果寫構(gòu)造函數(shù) 那么就要把結(jié)構(gòu)中所有的字段全部賦值
如果在結(jié)構(gòu)中寫了構(gòu)造函數(shù),那么 默認的構(gòu)造函數(shù)還有,和類不同
在類中寫了有參數(shù)的構(gòu)造函數(shù) ,無參數(shù)的構(gòu)造函數(shù)直接被干掉了
并且 在類中的構(gòu)造函數(shù)中 可以 不用把所有字段都賦值
值類型和引用類型的區(qū)別1.將一個值類型變量賦給另一個值類型變量時,將復制包含的值。引用類型變量的賦值只復制對對象的引用,而不復制對象本身。2.值類型不可能派生出新的類型:所有的值類型均隱式派生自 System.ValueType。但與引用類型相同的是,結(jié)構(gòu)也可以實現(xiàn)接口。3.值類型不可能包含 null 值:4.每種值類型均有一個隱式的默認構(gòu)造函數(shù)來初始化該類型的默認值。
堆和棧的區(qū)別棧是編譯期間就分配好的內(nèi)存空間,因此你的代碼中必須就棧的大小有明確的定義;局部值類型變量、值類型參數(shù)等都在棧內(nèi)存中。堆是程序運行期間動態(tài)分配的內(nèi)存空間,你可以根據(jù)程序的運行情況確定要分配的堆內(nèi)存的大小。實操StringBuilder的運用

接收用戶輸入的字符串,將其中的字符以與輸入相反的順序輸出。"abc"→"cba"

接收用戶輸入的一句英文,將其中的單詞以反序輸出。"hello c sharp"→"sharp c hello"

從Email中提取出用戶名和域名

文本文件中存儲了多個文章標題、作者,標題和作者之間用若干空格(數(shù)量不定)隔開,每行一個,標題有的長有的短,輸出到控制臺的時候最多標題長度10,如果超過10,則截取長度8的子串并且最后添加“...”,加一個豎線后輸出作者的名字。

分別寫一個Teacher類和一個Student的類(繼承的運用)
首先定義一個父類Person

在分別定義Teacher類和Student類


在Main函數(shù)里調(diào)用方法

好了,今天就先寫到這里了,明天再繼續(xù)吧...加油!
新聞熱點
疑難解答