程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#中字符串的處理,對象的引用及繼承(Tenth day),

C#中字符串的處理,對象的引用及繼承(Tenth day),

編輯:C#入門知識

C#中字符串的處理,對象的引用及繼承(Tenth day),


又進入到了新的一周,現在到總結的時間了,繼續為大家總結一下今天在雲和學院所學的知識。

理論:

StringBuilder 和 String 的區別    String 在進行運算時(如賦值、拼接等)會產生一個新的實例,而 StringBuilder 則不會。所以在大量字符串拼接或頻繁對某一字符串進行操作時最好使用 StringBuilder,不要使用 String;  如果要操作一個不斷增長的字符串,盡量不用String類,改用StringBuilder類。兩個類的工作原理不同:String類是一種傳統的修改字符串的方式,它確實可以完成把一個字符串添加到另一個字符串上的工作沒錯,但是在.NET框架下,這個操作實在是劃不來。因為系統先是把兩個字符串寫入內存,接著刪除原來的String對象,然後創建一個String對象,並讀取內存中的數據賦給該對象。這一來二去的,耗了不少時間。而使用System.Text命名空間下面的StringBuilder類就不是這樣了,它提供的Append方法,能夠在已有對象的原地進行字符串的修改,簡單而且直接。當然,一般情況下覺察不到這二者效率的差異,但如果你要對某個字符串進行大量的添加操作,那麼StringBuilder類所耗費的時間和String類簡直不是一個數量級的。 對象的引用 int、decimal、bool、double byte 枚舉結構等類型(值類型)是傳遞拷貝;對象(引用類型)則是傳遞引用。 方法間傳遞對象  String  引用類型  數組   類

結構如果寫構造函數  那麼就要把結構中所有的字段全部賦值

如果在結構中寫了構造函數,那麼 默認的構造函數還有,和類不同

在類中寫了有參數的構造函數 ,無參數的構造函數直接被干掉了

並且  在類中的構造函數中 可以 不用把所有字段都賦值

值類型和引用類型的區別 1.將一個值類型變量賦給另一個值類型變量時,將復制包含的值。引用類型變量的賦值只復制對對象的引用,而不復制對象本身。 2.值類型不可能派生出新的類型:所有的值類型均隱式派生自 System.ValueType。但與引用類型相同的是,結構也可以實現接口。 3.值類型不可能包含 null 值: 4.每種值類型均有一個隱式的默認構造函數來初始化該類型的默認值。   堆和棧的區別 棧是編譯期間就分配好的內存空間,因此你的代碼中必須就棧的大小有明確的定義;局部值類型變量、值類型參數等都在棧內存中。 堆是程序運行期間動態分配的內存空間,你可以根據程序的運行情況確定要分配的堆內存的大小。

實操
StringBuilder的運用

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

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

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

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

分別寫一個Teacher類和一個Student的類(繼承的運用)

首先定義一個父類Person

在分別定義Teacher類和Student類

在Main函數裡調用方法

 

好了,今天就先寫到這裡了,明天再繼續吧...加油!

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