申明變數和初始化的過程比喻為修房子和入住。這個過程中共涉及到三個對象,變數名、存放變數的記憶體空間、值。而修房子和入住這個過程中與之對應的三個對象是,房子,地址
在C#中聲明變數使用下述文法:
資料類型變數標示符;//申明的文法
變數標示符 = 值;//為變數初始化
//第二種方式
資料類型變數標示符 = 值;//申明變數的同時初始設定變數
例如:
string name;//申明一個名為name 的string 類型的變數
name="小天"; //初始化name變數
//第二種方式
string name1="老田"; //申明一個名為name 的string 類型的變數並初始化
小天:上面執行個體中兩種申明方式有什麼不同嗎?
老田:其實也沒有什麼不同,第一種是先申明,再初始化。第二種是申明的同時就初始化。咱們將申明變數和初始化的過程比喻為修房子和入住。這個過程中共涉及到三個對象,變數名、存放變數的記憶體空間、值。而修房子和入住這個過程中與之對應的三個對象是,房子,地址(門牌號),和入住的人、物。這樣一對應起來,就可以想象了,修房子的過程就是在記憶體中開闢一片空間,而申明變數名,也就是申明找到這個空間的依據就是確定門牌號。最後至於入住人或物那就相當於把值放到記憶體空間中。
同樣的道理,上面第一種方式聲明了一個string變數name。編譯器不會讓我們使用這個變數,除非我們用一個值初始化了該變數。因為最初申明後,這隻是一個空的記憶體空間,即使讓你去也拿不到正確的值。就想你去一所明明沒有人的空房子,只能吃一肚子灰一樣。
小天:我明白了,上面樣本中第一種方式是先修房子並為房子分個門牌號,再去入住。而下面這種方式則是將分房子、定門牌和入住一次完成了。
開發商修房子都可以批量的修,那申明變數是否可以一次申明N個呢?
老田:可以的,但有個前提:如果在一個語句中聲明和初始化了多個變數,那麼所有的變數都具有相同的資料類型:
int x = 10, y =20; // 一次申明x和y兩個int類型的變數
要宣告類型不同的變數,需要使用單獨的語句。在多個變數的聲明中,不能指定不同的資料類型:
int x = 10; //申明第一個變數
bool y = true; // 申明第二個變數
int x = 10, bool y = true; // 這樣就是錯誤的
本文為天轟穿原著,轉載請註明出處及作者!