- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
lectureofclass#3(pptfile)
視窗程式設計 Class 3 教師:黃聖方 補充資料一 字串其他使用範例 格式化輸出至字串 透過string底下的Format來作格式化 string s1 John; string s2 Age; int i 15; string s string.Format 0 1 2 , s1, s2, i ; How to Parse a String? Parse方法 使用範例一 string sentence name john age 15; char [] separator new Char[] , \t ; // split at spaces. string [] splitSentence sentence.Split separator ; 問題: 只能根據一個空白字元來作間隔 例:“name john age 15“, age和15間有三個空白 出來結果會變成 “name”, “john”, “ “, “15” How to Parse a String? 利用System.Text.RegularExpression命名空間 藉由輸入regular expression來做到pattern matching 使用範例: string sentence name john age 15; System.Text.RegularExpressions.Regex r new System.Text.RegularExpressions.Regex + ; string[] splitSentence r.Split sentence ; foreach string k in splitSentence Console.WriteLine k ; “ +”: 雙引號內為空白+,代表空白出現一次以上的字串 Regular expression介紹請見 /wiki/Regular_expression 補充資料二 物件的釋回與刪除 解構子的寫法 解構子的寫法與C++同,譬如: 名稱為 ~類別名稱 無參數 不可加存取屬性 public等 因為解構子在C#是給垃圾回收機制呼叫的,不是給應用程式呼叫的。 註:結構不可以有解構子,因為結構為實值型態。 C#的垃圾回收機制 沒有delete之類的關鍵字,物件的釋回由垃圾回收機制自動判斷,自動完成。 注意:雖然寫程式很方便,但可能不適合時間極為關鍵的應用程式;因為回收物件是一件耗時的工作。以下為分解動作: 建立物件關係圖;沒有被加入關係圖的被視為沒有使用 檢查無人使用的物件有沒有解構子;需被回收的物件放到一個queue裡面。 不需回收者直接刪除;使用中的物件放置System Heap的下方,更新所有物件之參考 啟動執行其他執行緒。 啟動另一個執行緒,將queue需要回收的物件加以回收利用。 建議:由於加入解構子會增加垃圾回收機制的複雜度,除非必要,否則建議可以不必加入解構子,由C#垃圾回收機制自行管理即可。 資源管理 有時等到解構子被呼叫時才釋放記憶體是很沒效率的作法。有些類別會提供Close之類的類別讓使用者可以在中途就釋放資源。 TextReader reader new StreamReader filename ; try string line; while line reader.ReadLine ! null Console.WriteLine line ; finally reader.Close ; 問題: 釋放的資源超過一種,巢狀try和finally易混亂。 程式碼不易閱讀 離開finally區段後物件變數依然存在,以致誤用到已被回收的物件。 關鍵字using 使用範例 using TextReader reader new StreamReader filename string line; while line reader.ReadLine ! null Console.WriteLine line ; 以上敘述式使得reader僅僅在區段中被使用,一旦發生問題,自動呼叫該物件的Close;離開區段後該變數便不能再使用。 註:該類別必須實作IDisposable介面。 補充資料三 檔案處理 /zh-tw/library/system.io.file VS.80 .aspx IO與資料流 /zh-tw/library/336wast5 VS.80 .aspx 資料流相關類別 檔案相關類別 File 提供操作檔案的相關靜態方法,如建立、複製、刪除、移動以及開啟指
文档评论(0)