明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

.Net邊學(xué)邊講(一)

[摘要]經(jīng)過一段時(shí)間的使用,覺得自己對(duì).net的基礎(chǔ)知識(shí)掌握的不太夠,可能許多朋友也有這種感覺,再加上beta2在許多方面進(jìn)行了調(diào)整和更改,因此我想現(xiàn)在用beta1做開發(fā)是不太適合,倒不如大家一起探討一些基礎(chǔ)知識(shí)、原理,這些東西是不會(huì)變的,而且掌握了這些,以后編程會(huì)更加得心應(yīng)手。我這里下的一些類似結(jié)論性的...
經(jīng)過一段時(shí)間的使用,覺得自己對(duì).net的基礎(chǔ)知識(shí)掌握的不太夠,可能許多朋友也有這種感覺,再加上beta2在許多方面進(jìn)行了調(diào)整和更改,因此我想現(xiàn)在用beta1做開發(fā)是不太適合,倒不如大家一起探討一些基礎(chǔ)知識(shí)、原理,這些東西是不會(huì)變的,而且掌握了這些,以后編程會(huì)更加得心應(yīng)手。我這里下的一些類似結(jié)論性的文字,不一定對(duì),個(gè)人感覺加上看一些文章的體會(huì),希望大家能一起探討。
1.類型(Type):
類型是.Net的基本單位。.Net中的classes, interfaces, enumerations, structures都是類型,.net中的大多數(shù)類型都是類,在.net中即使你寫一個(gè)再簡單的程序(如:hello world)也需要一個(gè)類,以winform來說,main函數(shù)需要一個(gè)類,他是這個(gè)類的成員函數(shù)。那么類究竟是什么?Dr.Net 上給了一個(gè)定義:他是一個(gè)創(chuàng)建包含數(shù)據(jù)和操作這些數(shù)據(jù)的方法的對(duì)象的模版。有點(diǎn)拗口,簡單地說,他是一個(gè)模版,這個(gè)模版中封裝了數(shù)據(jù)和操作這些數(shù)據(jù)的方法。這樣,你創(chuàng)建了一個(gè)類就創(chuàng)建了一個(gè)新的數(shù)據(jù)類型、定義了操作這些數(shù)據(jù)的術(shù)語。類型是一些概念的抽象。在一個(gè)好的OO設(shè)計(jì)當(dāng)中,類型是由一系列的操作定義的,而不是內(nèi)在的數(shù)據(jù)格式?jīng)Q定的。而我們一般應(yīng)將數(shù)據(jù)聲明成私有,這樣就避免了程序的其它部分破壞掉這個(gè)封裝。比如說,我們創(chuàng)建一個(gè)類
public class auto{
private double speed;
public double Speed{
get{
return(speed);
}
set{
speed = value;
}
}
}
以這個(gè)類為例,我詳細(xì)的說明以上的觀點(diǎn),類auto可以看成一個(gè)新的數(shù)據(jù)類型,你可以聲明其他的成員為這種數(shù)據(jù)類型:public auto car(){},這樣,car返回的是一個(gè)auto類型。這跟public int car(){}沒什么區(qū)別,在.net中int, string...等時(shí)類而不僅僅是 其他編程語言中的"數(shù)據(jù)類型", 實(shí)際上C#中的int是.Net Runtime中的Int32類的別名。更深一步說你要是想做一個(gè)跨語言的組件,你聲明的所有的類型 必須是.Net Runtime的標(biāo)準(zhǔn)類,也就是說用String 代替string,Int32代替int等。那么對(duì)于封裝,我們?nèi)绾卫斫饽兀勘热缯fSingle 和 Double 他們都代表真實(shí)數(shù)字的抽象封裝。那么數(shù)據(jù)格式呢?我們往往不需要知道,也不想知道。Single 和 Double有一定的范圍和精度,因?yàn)樗麄兌际浅橄蟮模?而不是真實(shí)的數(shù)字。你可以對(duì)他們實(shí)現(xiàn)一些操作,包括加減乘除。但卻不能進(jìn)行位運(yùn)算,這是因?yàn)檫@些操作不是封裝內(nèi)的部分,所以他們也不是類型的一部分。類是模版,但我們怎樣才能得到真實(shí)的對(duì)象呢?auto d= new auto();這樣我們就明白了,為什么我們在使用類前,為什么要實(shí)例化。




相關(guān)文章