NETFramework基本類庫深入探討課件_第1頁
NETFramework基本類庫深入探討課件_第2頁
NETFramework基本類庫深入探討課件_第3頁
NETFramework基本類庫深入探討課件_第4頁
NETFramework基本類庫深入探討課件_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

DEV407:.NETFramework:基本類庫深入探討

TechnicalSpecialistMicrosoft(China)議題介紹基本數(shù)據(jù)類型字符串規(guī)則表達(dá)式CollectionsIO序列化介紹WindowsCOM+ServicesCommonLanguageRuntimeBaseClassLibraryADO.NETandXMLASP.NETWindowsFormsCommonLanguageSpecificationVBC++C#JScript…VisualStudio.NET.NET統(tǒng)一的編程模型WindowsAPI.NETFramework一致可用的API,而與語言和編程模型無關(guān)ASP無狀態(tài)的,代碼嵌入在HTML頁面中MFC/ATL子類,強(qiáng)大的和豐富的VBObject

Model快速開發(fā),創(chuàng)作和委派介紹基本類庫的目的:支持Framework提供通用,眾所周知的功能使用簡單強(qiáng)大的并且靈活議題介紹字符串規(guī)則表達(dá)式CollectionsIO序列化基本數(shù)據(jù)類型System基本數(shù)據(jù)類型

格式化和解析影響所有基本數(shù)據(jù)類型通過ToString和Parse支持格式化是自動(dòng)認(rèn)知場景(locale-aware)Thread.CurrentThread.CurrentCulture通過IFormatProviders支持控制格式化通用格式化提供者包括CultureInfo,DateTimeFormatInfo,和NumberFormatInfo基本數(shù)據(jù)類型

格式化:實(shí)例(片斷)Doubled=123.4;//流通符號(hào),“$123.40”(inen-US)label2.Text=d.ToString("c");//工程符號(hào),“1.234000e+002”label3.Text=d.ToString(“e");DateTimedt=DateTime.Now;//Pictureformatting,“19Jun2001”(inen-US)label6.Text=dt.ToString(“ddMMMyyyy");//日期格式,“6/19/20016:35:09PM”label4.Text=dt.ToString();格式化這個(gè)例子著重強(qiáng)調(diào)了在Framework中格式化是多么的強(qiáng)大和簡單生成字符串串聯(lián)是非常普遍的String.Concat(strA,strB,strC)strA&strB&strCStrings是不可改變的使用StringBuilder增加字符串轉(zhuǎn)換函數(shù)返回一個(gè)新的字符串(e.g.,ToUpper,ToLower,Trim)s.Trim().ToUpper().Equals(k.Trim().ToUpper())字符串比較順序的(culturally-ignorant)和感知當(dāng)?shù)匚幕?culturally-aware)比較CompareOrdinal和Equals是順序的Compare是culturally-aware對(duì)于包裝全球化的功能非常有益在Win9x,Windows2000andNT4平臺(tái)上通用的比較數(shù)據(jù)的方法字符串格式化為輸出和顯示給用戶的目的需要格式化字符串控制格式,寬度,填充,對(duì)齊方式用picturestring或者代碼來確定格式String.Format(“Pleaseorder{0}widgetsat{1}each.”,numWidgets,price)String.Format(“{0,10:##00.00}”,f)Console.WriteLine(“{0:U}”,DateTime.Now)規(guī)則表達(dá)式(RegularExpressions)支持匹配和替換的能力匹配‘ThisexampleisamatchRegex.IsMatch(“AcmeCorp.”,”.*e.*p”)替換‘thisexamplechanges‘a(chǎn)llinall’to‘a(chǎn)nyinany’Regex.Replace("allinall","(?<char>\w)\k<char>","ny")規(guī)則表達(dá)式(RegularExpressions)執(zhí)行模式解釋Regexre=newRegex(“.*e.*n”)re.IsMatch(“AcmeCorporation”)編譯Regexre=newRegex(“.*e.*n”,RegexOptions.Compiled)Compiledformisexpensivetocreate只能被用于靜態(tài)議題介紹基本數(shù)據(jù)類型字符串規(guī)則表達(dá)式IO序列化CollectionsSystem.CollectionsCollections.NETFramework提供一些通用的collectionsStack,Queue(ICollection)Array,ArrayList(IList)Hashtable(IDictionary)使用一個(gè)ArrayList(IList)list[5]=“Mystringdata”;

Strings=(String)list[5];使用一個(gè)Hashtable(IDictionary)table[MyDataKey]=MyDataObject;

DatadataObj=(Data)table[MyDataKey];Collections

枚舉所有的collectionssupportgetting

anIEnumeratorEnumeratorscanbestronglytyped簡單 DimbAsButton ForEachbinMyButtonList

Console.WriteLine(b) Nextb枚舉的性能非常出色StronglyTypedCollectionsTreatgenericallybyinterfaceorspecificallybytypePrivateinterfaceimplementationenablesstrongly-typedcollections

publicclassButtonList:IList{ publicintAdd(Buttonbutton)…

intIList.Add(Objectobj)…

}Strong-typingprovidestype-checking,andself-documentationAlthoughyoucanimplementICollection,inheritingCollectionBaseisalsoanoptionCollections議題介紹基本數(shù)據(jù)類型字符串規(guī)則表達(dá)式Collections序列化IOSystem.IOIO例子

寫到文件//在寫模式下打開一個(gè)并且包裝他到一個(gè)StreamWriter

StreamWriterwriter=

(“C:\\Temp\\Foo.Bar”);//寫一個(gè)String和一個(gè)double,這些在Stream上將會(huì)作為UTF8編碼文本

writer.WriteLine(“Hello,World!”);

writer.WriteLine(3.1415926535);//關(guān)閉StreamWriter和下面的Stream

writer.Close();(String,String)Directory.Delete(String)IO文件和目錄Path.GetFullPath(String)文件和目錄的操縱分成:,文件和目錄的操縱的例子,靜態(tài)操縱文件和目錄的操縱的例子Path,靜態(tài)操縱路徑(String)DirectoryInfo.Delete()序列化System.Runtime.Serialization議題介紹基本數(shù)據(jù)類型字符串規(guī)則表達(dá)式CollectionsIO序列化(Serialization)存儲(chǔ)一個(gè)對(duì)象的圖表到一個(gè)stream中以備后來的重新實(shí)例化完全自動(dòng)化系統(tǒng)跟蹤和恢復(fù)對(duì)象數(shù)據(jù)并且在對(duì)象之間連接支持所有的對(duì)象類型ISerializable允許用戶控制可插入格式器架構(gòu)定義你自己的格式序列化

ISerializable對(duì)默認(rèn)的序列化下列情況使用默認(rèn)序列化:Aclasscanbeserialized‘a(chǎn)sis’Nospecificprocessneedstooccurforserialization/deserializationYoucaneasilymarkitemsnottobeserializedusingtheNonSerializedAttribute下列情況實(shí)現(xiàn)ISerializable:對(duì)象需要控制他們自己的序列化序列化

代碼例子非序列化DimsAsStream‘reopentheserializedfileDimsfAsSoapFormatter=NewSoapFormatterDimalAsArrayList=CType(sf.Deserialize(s),ArrayList)序列化DimsAsStream‘openandcreateaserializealsoDimsfAsSoapFormatter=NewSoapFormatterDimalAsNewArrayList‘populatewithobje

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論