C# Online ! 第七篇:變數到底是什麼!!?

  • 7591
  • 0
  • C#
  • 2011-07-08

C# Online ! 第七篇:變數到底是什麼!!?

 

你在玩一款新Online Game的時候,是否會先去做足功課呢!? 查詢這款遊戲,有哪些種族,每個種族是不是有專屬的優勢、升級的天賦該怎麼點、能力值跟怎麼分配、哪一種武器比較猛,做足了功課以後,往後在練功的時候,是不是會練得比別人快很多呢!? 所以基礎的功課絕對不能省,這一篇,就要來說說 C# Online Game裡,初心者們一定要弄清楚的基本概念(不用錢的攻略,趕快叫大家來看呀!!)。

當我們以後要撰寫 C# 的時候,『變數』是非常重要滴,所以我們一定要先搞懂它!! 說到變數,就要提一下電腦對於資料的儲存方式,基本上,『變數』對於電腦記憶單位來說,我們可以先把它想像成是放在櫃子裡的箱子,我們能夠把東西放到箱子裡面,再把它拿出來,或者只是看一下箱子裡到底裝些什麼東西,對於變數來說也是一樣道理,我們可以把資料放進去,當我們想看的時候,也可以把資料拿出來看一下。

儘管所有的資料對於電腦來說都只是『0』跟『1』,但是變數可以有很多不同的型別(type),一樣拿箱子來舉例,箱子可以有大有小,可以有任何形狀,相對的,要放進去的物件,也是有大有小,有任何形狀,所以我們要找到適合物件的箱子,才能把物件放進去,這樣子每一個物件,就有每一個專屬它的箱子了。

MSDN有說到:變數表示某個數值、字串值或類別的物件。變數所儲存的值可能會變更,但名稱仍會相同。

簡單來說,就是當我們要用變數(箱子)的時候,我們必須知道,這個變數(箱子),到底是什麼型別(要裝甚麼類型的東西,像是玻璃、紙類、還是鋁罐。),這樣才不會出現error的情形發生(基本上不能把鋁罐丟到要放玻璃的箱子裡。),所以,當我們要使用變數的時候,必須要清楚地先把它『宣告』出來。

宣告』─ 就是說你必須給他一個型別(type)與名稱(name),當你宣告這個變數以後,它就會依照你宣告的型別去被儲存起來,宣告一個變數在C#語法裡其實就只是明確的指定出一個變數的名字與型別。這邊還要注意一點就是變數的名稱,不能重複,也不能跟C#裡面內建的關鍵字一樣

簡單的舉例如下:

<type> <name>;

<型別> <名稱>;

 string   myName ;

這樣大家應該比較清楚了,我在舉幾個具體一點的例子,加深一下大家的印象。

<type> <name>;

<玻璃>     <箱子1>
<鋁罐>     <箱子2>
< ? >         <箱子3>  ← 沒有具體明確的宣告出來,就不知道這到底是蝦咪咚咚,error就出現啦XD!

這樣大家對於變數的觀念應該更清楚了吧! 那型別呢? 我們有那些型別可以用呢? 答案是...無限量,因為我們可以自己去定義出我們自己想要的資料型別出來,當然這要等我們努力練功,等級夠高了以後,才辦的到啦!! 說到這裡,先跟大家說,既然可以自己去定義出自己要的型別,當然也會有已經幫我們定義好的型別,所以下一篇將會介紹到幾乎是人人都會使用到的簡單型別。

對於這篇有問題的朋友可以提出來一起討論唷!!

同場加映 :

所有的資料對於電腦來說都只是『0』跟『1』,因為電腦在儲存資料時,都是使用二進位,因為它只使用0、1兩個數字元號,非常簡單方便,易於用電子方式實現。

二進位四則運算方式如下:

加法:00+00=00,00+01=01,01+00=01,01+01=10

減法:0-0=0,1-0=1,1-1=0,10-1=1

乘法:0×0=0,0×1=0,1×0=0,1×1=1

除法:0÷1=0,1÷1=1

對於電腦來說,不管是儲存『0』或『1』,就是1 bit。

十進數轉成二進數方法是將十進數一直分解至商數為1,從最底左邊數字開始讀,之後讀右邊的數字,從下讀到上。

以下是十進數( 7 ) 轉成 二進數的例子 :

7 ÷ 2 = 3 ... 1

3 ÷ 2 = 1 ... 1

1 ÷ 2 = 0 ... 1

十進數       二進數

    7       =      111      

所以如果電腦要儲存從0 ~ 7 的數字,至少必須要有 3bits 唷!! 

有興趣的朋友,可以算算看 十進數 ( 99 ) 如果轉成 二進數,答案是多少呢,電腦儲存從0~99的數字,至少需要幾bits呢 ??

 

希望資深的前輩們或是跟我一樣剛開始想學習C#的初心者,可以給我一些建議跟鼓勵! 謝謝呀 ~

(本文中相關內容有參閱、引述MSDN,wikipedia)

 

 

 

 


如果這篇文章對您有幫助,請幫我點選「我要推薦」、按個讚、或是幫我推到其他平台;您的鼓勵將會是我繼續努力的一大動力!!

若是有任何指教或是需要討論之處,也不用客氣,請在下面留言給我,我將會儘速回覆~

Share | . . . . . . . . . .