程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> Questioning C# (三)

Questioning C# (三)

編輯:.NET實例教程
Q:今天我的侄子問我1+1等於多少,我說當然是2咯,他很狡猾的笑著說我錯了,然後我問他為什麼錯,他瞄了我一眼說:“根本無法確定一個唯一的答案,在數學上你可以很確定的說是2,不過我並沒有限定范圍喲!”那一瞬間我想個傻子被他嘲弄了一番。 

A:哈哈。看來你的侄子的確聰明過人。沒錯,沒有限定范圍,我們當然無法給出一個確定的答案,這也跟我們今天的話題——類型和類型系統有關。 

Q:不會吧?跟我們的C#話題有關??怎麼個有關法? 

A:嗯,這樣吧,我問你,要使得1+1的結果有效,我們至少要為這兩個“1”限定一些什麼條件? 

Q:他們應該具有可加性。 

A:在具體一點! 

Q:嗯,他們應該是同一類別的。 

A:對!非常對!就是同一類別,我們總不能要求一個蘋果加上一台風扇會有滿意的唯一的結果吧!同樣的道理,我們要使得相關的式子在電腦上有效,至少我們要限定每一個被操作的因子都是可以歸為某一個類別的。這就導出了類型(Type)。 

Q:那麼,這個跟C#的類型有什麼聯系呢? 

A:這樣吧,我們不說1+1了,我們說說你老婆每個月的家庭財政管理工作。我敢肯定,你老婆不會愚蠢到把數字跟物品混在一起計算收支的情況,她肯定會把相關的物品先進性換算,而實際上,我們每個人在處理財務工作的時候,都統一使用以貨幣為單位的數字,對嗎?假如你這個月收入10000元,支出5000元,那麼你可以很快地得出結論,你們這個月有5000元可以存入銀行。但這等事怎麼在電腦裡,我的意思是在C#裡面表達呢?電腦沒有我們那麼聰明,知道10000-5000=5000,因為它不能夠從這個簡單的式子裡面知道這些數字是什麼類型的。於是,我們就要首先告訴他這些數字的類型! 

Q:那麼,我們怎麼告訴C#這些額外的信息呢? 

A:這個很簡單,我們計算的時候有小數的吧,在電腦裡面叫做浮點數,我們只要告訴電腦,這些是浮點數,再告訴他這條式子,它就會給出結果我們的了。別的不說,我們先來看看代碼: 
double inComing = 10000.00; 
double outGoing = 5000.00; 
double result = inComing - outGoing; 
然後你得到的result就是算出的結果:5000了。 

Q:這些inComing、outGoing、result等,是什麼來的?double又是什麼來的? 

A:首先,double是指雙精度浮點數,你目前知道它是一種精度高的浮點數就行了,與它對應的是精度低的單精度浮點數float。而inComing、outGoing、result這三個東西是變量(Variable)。變量是用來儲存信息的,以便我們後面的操作使用的。上面的代碼就等於先告訴電腦:我這個月的收入是10000元,支出是5000元,我現在要你給我計算出我這個月剩下多少錢。 

Q:噢,我明白了。那麼,上面的代碼可以運行嗎? 

A:還不行,因為這個僅僅是一個代碼片斷,不過要運行的話,我們只需要把這個片斷跟之前的HelloWorld結合一下就行了,結合後的代碼是: 

class PrintResult 

static void Main() 

double inComing = 10000.00; 
double outGoing = 5000.00; 
double result = inComing - outGoing; 

System.Console.WriteLine(result); 



還記得System.Console.WriteLine(...);這句話嗎,它的作用就是用來向命令行界面輸出東西的,這次我們不輸出Hello, World! 而改為輸出result。現在,你把這個代碼保存為PrintResult.cs,然後去到命令行提示符,轉到PrintResult.cs所在目錄鍵入csc PrintResult.cs進行編譯,最後鍵入PrintResult運行一下! 

Q:好,我明白了,不過我有一個問題想問問,為什麼HelloWorld程序和我老婆的財務工作加起來?他們同一類型的嗎?:) 

A:-_- ... 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved