標籤:dia void 日常生活 字母 特徵 精度 首字母 閱讀 tab
在第一章我們瞭解了C#的輸入、輸出語句後,我這一節主要是介紹C#的基礎知識,本節的內容也是後續章節的基礎,好的開端等於成功的一半。在你閱讀完本章後,你就有足夠的C#知識編寫簡單的程式了。但還不能使用繼承或其它物件導向的特徵。
本章主要針對以下幾個部份來進行講解:
1、電腦是由什麼來儲存所使用的資料?
2、基礎資料型別 (Elementary Data Type)有哪些?
3、如何聲明變數和賦值?
4、變數和常量的區別?
5、不同資料類型之間是如何轉換的?
下面,我們現一個一個的來瞭解這些問題。
一、電腦是由什麼來儲存所使用的資料?
這個問題用一句話比較籠統的概括,那就是:電腦使用記憶體來記憶計算時所使用的資料。
在現實生活中的資料各種各樣,整數、小數、字串、字元等等,它們都類型是不一樣的,所以你要想在電腦中使用這些類型,就必須在記憶體中為它申請一塊合適的空間。
那有哪些資料類型是C#能使用的呢?我們一起來看一看.
二、基礎資料類型有哪些
首先要瞭解一點:C#認可的基礎資料類型並沒有內建於C#語言中,而是內建於.net Framework中。
如,在c#中聲明一個int類型的資料時,聲明的實際上是.net結構System.Int32的一個執行個體。這聽起來似乎很深奧,但其意義深遠:這表示在文法上,可以把所有的基礎資料類型看作是支援某些方法的類。
類型實際上仍儲存為基本類型。基本類型在概念上用.Net結構表示,所以肯定沒有效能損失。
下面大家一起來瞭解一下C#中定義的內建類型,我們將列出每個類型,以及它們的定義和對應的.net類型(CTS類型)的名稱。
c#有15個預定義類型,其中13個是實值型別,兩個是參考型別(string 和 object)
1、整型
2、浮點類型
float資料類型用於較小的浮點數,因為它要求的精度較低。
double資料類型比float資料類型大,提供的精度也大一倍(15位)。
如果在代碼中沒有對某個非整數值(如12.3)寫入程式碼,則編譯器一般假定該變數是double。
如果想指定該值為float,可以在其後加上字元F(或f),如:
float f = 12.3F;
3、decimal類型
decimal類型專門用於進行財務計算,使用decimal類型提供的28位的方式取決於使用者。
要把數字指定為decimal類型,可以在數位後面加上字元M或(m),如:
decimal d=12.30M;
4、bool(布爾)類型
5、char字元類型
char類型的字變數是用單引號括起來的。 如‘A‘
如果把字元把在"A"(雙引號)內,編譯器會把它看作是字串,從而產生錯誤。
6、參考型別(Object類型和字串類型)
三、如何聲明變數和賦值?
1、變數的定義:是指在程式的運行過程中隨時可以發生變化的量
2、上面我們提到,變數在運行時當中是存在記憶體當中的,它是一個臨時的存放場所。
那麼在記憶體當中,可以存放如數字、字串、日期等等各種類型的資料。
|
大家可以看一看這張圖,它就把表示記憶體當中的一個狀態。 簡單的來說,變數就是表示記憶體當中的一Block Storage地區。 它會對應一個唯一的記憶體位址,但是我們在使用程式當時候,記憶體位址不好理解也不好記憶。 那麼怎麼辦呢? 在日常生活當中我們都有一個名字,如"張三“、”李四“等,這些名字就是為了便於記憶。 那麼同樣,在程式當中,為了區別多個變數,那就需要為每個變數賦值一個簡短,便於記憶的名字, 這就是變數名。 |
3、 C#中的變數的命名是是有規則的:
1)、由字母、數字或底線"_"組成
2)、必須由字母或底線"_"開頭,不能以數字開頭
3)、不能是c#中的關鍵字 如:int、string、bool、Main、class等
4)、區分大小寫 如:小寫a 和 大寫的A 是兩個變數
4、做為一個比較好的學習者,就必須遵守一些變數命名規範:
1)、變數的名字要有意義,盡量用對應的英語命名,具有“見名知意“的作用。
如:姓名 變數取名為 name 或者 用拼單 xingMing,避免用a,b,c來進行命名。
2)、避免使用單個字元作為變數名( 除在迴圈裡面定的變數)
3)、當使用多個單片語成變數名時,應該使用駱駝(Camel)命名法
駱駝(Camel)命名法:第一個單詞的首字母小寫,其它單詞的首字母大寫,如:myName,myAge
選擇題:以下變數命名正確的是( )
A、name、 _222*1、 9class、 public
B、_teacher、 void、 string、 myName
C、$Age、 corss、 fire、 _grade
D、_glass、 g23、 c_12、 my_first_2
5、變數的聲明和賦值
1)定義變數的文法:
資料類型 變數名; (定義一個年齡的變數,年齡是整數,所以變數定義如下:)
int age; [系統會根據資料類型,在記憶體中分配不同大小的儲存空間]
每個資料類型後面,可以定義多個變數,如:(定義姓名、家庭地址、籍貫、民族)
string name,address,origin,national ;
2)為變數賦值文法:
變量名 = 值;
(這裡的=號表示賦值運算子,把=號右邊的值,賦值給左邊的變數名,最後以一個;[分號]結束)
如:年齡18歲,姓名為“小張",家庭地址為“重慶南坪XXX",
籍貫為“重慶",民族為“漢"
age = 18 ;
name = "小張" ;
address = "重慶南坪XXX" ;
origin = "重慶" ;
national = "漢" ;
四、變數和常量的區別
變數:是指在程式的運行過程中隨時可以發生變化的量
常量:是指在程式在運行過程中不會發生變化的變數
常量的特點:
1、必須在聲明是賦值
2、不能在在程式運行時,給常量賦值
3、常量是靜態。不必須(實際上,是不允許)在常量聲明中包含修飾符static
五、不同資料類型之間是如何轉換的
在C#中資料類型轉換分為兩種:1)隱式[又叫自動]類型轉換 2)顯式[又叫強制]類型轉換
舉個簡單例子:
飛機場裡面停飛機,這是理所當然,我們把這種叫做隱式[又叫自動]類型轉換
那如果我們反過來看一看,飛機裡面裝飛機場,這個在我們實際生活中,覺得這是根據不可能的,
但是程式可能做到這一點,我們把這種叫做顯式[又叫強制]類型轉換
在C#中資料類型轉換分為兩種:1)隱式[又叫自動]類型轉換 2)顯式[又叫強制]類型轉換
舉個簡單例子:
飛機場裡面停飛機,這是理所當然,我們把這種叫做隱式[又叫自動]類型轉換
那如果我們反過來看一看,飛機裡面裝飛機場,這個在我們實際生活中,覺得這是根據不可能的,
但是程式可以做到這一點,我們把這種叫做顯式[又叫強制]類型轉換
double和int之間就是(飛機場與飛機)這種關係,我們可以這樣理解,double的取值範圍比int要大得多
所以double可以裝得下int :
int a=1234;
double b=a; 系統會把a整型變數的值賦值給double變數b.這就是隱式[又叫自動]類型轉換
那反過來:
double a=1234;
int b=a; //系統編譯時間會報錯,:
那如何進行強制轉換呢?c#提供了非常簡便的方法,如:
double a=1234;
int b=(int)a; //這樣就強制把double類型,轉換為int類型
最後,再介紹一下,其它資料類型之間的轉換(1、字串轉換為其它類型 2、任意類型之間的轉換)
1)、字串轉換為其它類型
文法:
XX.Parse(字串); 這裡的xx代表的如:double,int,bool等
舉個例子來說明一下:
string strValue="123.45"; //這是一個字串,時面的值是"123.45"
現要把它轉換成小數類型,就可以使用double.Parse();來進行轉換
double dValue=double.Parse(strValue);
2)、任意類型之間的轉換
文法:
Convert.ToXX(任何類型);
如:把一個布爾類型轉換為整型
bool a = true;
int b = Convert.ToInt16(a);
Console.WriteLine("轉換後的結果是:"+b); //轉換後的結果是:1
ok, 經過以上的學習,我相信大家對C#的一些基礎知識有一定的瞭解,那麼下一章我將介紹C#的算術運算子、邏輯運算子、關係運算子,以及控製程序流的語句。
C#基礎--之資料類型【轉】