日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

C# 基础知识 (一).概念与思想篇

發(fā)布時(shí)間:2024/5/28 C# 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 基础知识 (一).概念与思想篇 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在C#中有一些我自己認(rèn)為比較獨(dú)特的知識(shí)點(diǎn),這些知識(shí)點(diǎn)是我經(jīng)常使用的知識(shí),但對(duì)它們的了解還是比較少的,所以通過(guò)查找資料學(xué)習(xí),總結(jié)了這些獨(dú)特的知識(shí)點(diǎn)并簡(jiǎn)單敘述,第一篇主要是一些概念和思想方面的知識(shí)。(后面還有C#其他篇的文章)

一.C#概念

C#語(yǔ)言是從C和C++語(yǔ)言演變而來(lái)的,是微軟創(chuàng)建的一門(mén)面向?qū)ο蟆⑦\(yùn)行在.NET Framework上的高級(jí)程序語(yǔ)言,是Windows的一個(gè)必要組件,包括一個(gè)稱(chēng)為公共語(yǔ)言運(yùn)行時(shí)(common language runtime,CLR)的虛擬執(zhí)行系統(tǒng)和一組統(tǒng)一的類(lèi)庫(kù)。(C#源文件擴(kuò)展名為.cs)

C#與Java有很多相似的地方:繼承、接口、聲明命名空間(using&import)、從Main入口點(diǎn)開(kāi)始執(zhí)行、源代碼被編譯成中間狀態(tài)等。同時(shí)也有明顯不同之處:C#借鑒了Delphi的與COM是直接集成的特點(diǎn)、它們所執(zhí)行的平臺(tái)也不相同,Java運(yùn)行環(huán)境JRE(Java Runtime Environment),C#運(yùn)行環(huán)境CLR(Common Language Runtime),且CLR支持多種語(yǔ)言;同時(shí)C#提供封箱裝箱等方法。

二.面向?qū)ο笏枷?/span>

面向?qū)ο笫菍⒖陀^(guān)事物看做屬性和行為的對(duì)象,通過(guò)抽象同一類(lèi)對(duì)象的共同屬性和行為,形成類(lèi)。通過(guò)對(duì)類(lèi)的繼承和多態(tài)實(shí)現(xiàn)代碼重用等。對(duì)象(Object)是類(lèi)(Class)的一個(gè)實(shí)例(Instance),如果將對(duì)象比作房子,那么類(lèi)就是房子的設(shè)計(jì)圖(類(lèi)中定義包括屬性和方法)。

面向?qū)ο蟮娜齻€(gè)基本特征為:

(1).封裝:把客觀(guān)事物封裝成抽象的類(lèi),類(lèi)中數(shù)據(jù)和方法只讓可信類(lèi)或?qū)ο蟛僮?#xff0c;不可信的隱藏(內(nèi)部細(xì)節(jié))

(2).繼承:它可使用類(lèi)的所有功能,無(wú)需重新編寫(xiě)原有類(lèi)且對(duì)功能進(jìn)行擴(kuò)展

(3).多態(tài):一般類(lèi)中定義的屬性或行為,被特殊類(lèi)繼承后,可以具有不同的數(shù)據(jù)類(lèi)型或表現(xiàn)不同的行為,各個(gè)類(lèi)能表現(xiàn)不同的語(yǔ)義,實(shí)現(xiàn)的兩種方法為覆蓋和重載

通過(guò)下面的例子來(lái)講解面向?qū)ο?#xff1a;

例1:讓你編寫(xiě)一個(gè)計(jì)算長(zhǎng)方體體積的程序,通常的思想是定義3個(gè)變量長(zhǎng)=a,寬=b,高=c,體積v=a*b*c;而在面向?qū)ο笏枷胫邢葎?chuàng)建一個(gè)長(zhǎng)方體的類(lèi),在類(lèi)中定義長(zhǎng)寬高和體積,然后定義方法,在實(shí)例化使用。(C++代碼)

class Rect { public:void showArea(…); //定義方法:計(jì)算長(zhǎng)方體體積 private:float a,b,c,v; //定義屬性:長(zhǎng) 寬 高 體積(私有成員) } void Rect::showArea(…) {…}

這樣的好處是它是站在事物本身的角度去思考解決問(wèn)題,如果上面采用面向過(guò)程定義函數(shù)的形式實(shí)現(xiàn),當(dāng)出現(xiàn)多個(gè)形狀時(shí),你需要對(duì)每一種形狀都定義一種方法,而面向?qū)ο笾恍璋堰@些形狀的屬性和方法抽象出來(lái),更加方面的實(shí)現(xiàn)。

值得注意的是,面向?qū)ο筇峁┑氖且环N思想,而非僅僅是課本中的那點(diǎn)知識(shí),很多時(shí)候我們僅僅是把使用了C++、C#或Java一門(mén)面向?qū)ο蟮恼Z(yǔ)言,或者是定義了幾個(gè)類(lèi)、使用繼承等知識(shí)就認(rèn)為自己運(yùn)用了面向?qū)ο?#xff08;我就是這樣的);但我更認(rèn)為面向?qū)ο笫且环N思想,一種更好的解決實(shí)際問(wèn)題的方法。比如有這樣一個(gè)問(wèn)題:

2:為了方便兒童學(xué)習(xí)編程,X公司開(kāi)發(fā)了一套R(shí)acing Car 模擬器,使用這個(gè)模擬器每個(gè)孩子都可以用一種簡(jiǎn)單的語(yǔ)言來(lái)控制一輛賽車(chē),例如,right,left等。請(qǐng)?jiān)O(shè)計(jì)一種簡(jiǎn)單的語(yǔ)言,給出它的語(yǔ)法,以及該語(yǔ)言的類(lèi)圖。

這就是我們實(shí)際編程中聯(lián)系到生活的問(wèn)題,它涉及到了設(shè)計(jì)模式的相關(guān)知識(shí),其中我采用的方法是“命名模式”實(shí)現(xiàn)的:客戶(hù)端是定義Children和Car,請(qǐng)求者是Children發(fā)出的Right\Left\Up\Down命令,接受實(shí)現(xiàn)者是Car執(zhí)行Move(),抽象命令是上下左右的抽象接口,具體命令是Car的上下左右。我制作的類(lèi)圖如下:

?

通過(guò)這個(gè)例子我不是想證明我采用命令模式和畫(huà)的類(lèi)圖是否正確,我想闡述的想法是我們學(xué)習(xí)面向?qū)ο笾R(shí)主要是用來(lái)解決實(shí)際生活中的問(wèn)題,讓它更加高效的解決問(wèn)題和優(yōu)化代碼。在學(xué)習(xí)《設(shè)計(jì)模式》時(shí)老師就曾說(shuō)過(guò)“模式是現(xiàn)成的,但實(shí)現(xiàn)方法要靠自己;同時(shí),學(xué)習(xí)的時(shí)候要敢于否認(rèn)自己以前很熟悉的套路,甚至經(jīng)典套路,只要能更加高效正確的完成項(xiàng)目,你的模式就很可能就是經(jīng)典。”所以,我才認(rèn)為面向?qū)ο笫且环N思想,不是宏觀(guān)的C語(yǔ)言就是面向過(guò)程,C++、C#就是面向?qū)ο蟆?/p>

同時(shí),面向?qū)ο笏枷胍m應(yīng)需求的變化,解決用戶(hù)的實(shí)際需求,在設(shè)計(jì)時(shí)就要盡量考慮到變化,會(huì)涉及到抽象、封裝變化(重點(diǎn))、設(shè)計(jì)模式等知識(shí)。補(bǔ)充:C#中的對(duì)象都是System.Object的子類(lèi),即所有對(duì)象都繼承System.Object,這樣的好處是所有的對(duì)象都可以有公用的方法,如ToString()方法。

三.總結(jié)

上面的內(nèi)容主要是我對(duì)C#基礎(chǔ)知識(shí)的一些自己理解,很可能我理解思想是錯(cuò)誤的,但我更希望提供一種自己的思想與大家分享。同時(shí),由于知識(shí)有限,做的項(xiàng)目也少,可能理解有錯(cuò)誤的地方或還沒(méi)有理解更深層的地方,見(jiàn)諒!最后希望幾十年后的自己也能像很多大神一樣回過(guò)頭來(lái)對(duì)年少時(shí)的自己寫(xiě)的這些博文做些更深入的分析,在根據(jù)那時(shí)的經(jīng)歷寫(xiě)出更優(yōu)秀的閱歷與大家分享更深刻的經(jīng)驗(yàn)!鼓勵(lì)自己與大家加油。

(By:Eastmount 2013-8-20 夜1點(diǎn))

參看一些書(shū)籍孫景瑞的《從零開(kāi)始學(xué)C#》、羅剛的《使用C#開(kāi)發(fā)搜索引擎》、《設(shè)計(jì)模式》課件、同時(shí)參考了CSDN論壇中一篇關(guān)于面向?qū)ο蟮挠懻?#xff0c;個(gè)人認(rèn)為非常不錯(cuò)。http://bbs.csdn.net/topics/220013605

總結(jié)

以上是生活随笔為你收集整理的C# 基础知识 (一).概念与思想篇的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。