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