在第一章我們瞭解了C#的輸入、輸出語句後,我這一節主要是介紹C#的基礎知識,本節的內容也是後續章節的基礎,好的開端等於成功的一半。在你閱讀完本章後,你就有足夠的C#知識編寫簡單的程序了。但還不能使用繼承或其它面向對象的特徵。
本章主要針對以下幾個部份來進行講解:
1、電腦是由什麼來存儲所使用的數據?
2、基本數據類型有哪些?
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、上面我們提到,變量在運行時當中是存在內存當中的,它是一個臨時的存放場所。
那麼在內存當中,可以存放如數字、字符串、日期等等各種類型的數據。
大家可以看一看這張圖,它就把表示內存當中的一個狀態。
簡單的來說,變量就是表示內存當中的一塊存儲區域。
它會對應一個唯一的內存地址,但是我們在使用程序當時候,內存地址不好理解也不好記憶。
那麼怎麼辦呢?
在日常生活當中我們都有一個名字,如"張三“、”李四“等,這些名字就是爲了便於記憶。
那麼同樣,在程序當中,爲了區別多個變量,那就需要爲每個變量賦值一個簡短,便於記憶的名字,
這就是變量名。
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)顯式[又叫強制]類型轉換
簡稱 | .NET 類 | 類型 | 寬度 | 範圍(位) |
---|---|---|---|---|
byte |
無符號整數 |
8 |
0 到 255 |
|
sbyte |
有符號整數 |
8 |
-128 到 127 |
|
int |
Int32 |
有符號整數 |
32 |
-2,147,483,648 到 2,147,483,647 |
uint |
無符號整數 |
32 |
0 到 4294967295 |
|
short |
有符號整數 |
16 |
-32,768 到 32,767 |
|
ushort |
無符號整數 |
16 |
0 到 65535 |
|
long |
有符號整數 |
64 |
-922337203685477508 到 922337203685477507 |
|
ulong |
無符號整數 |
64 |
0 到 18446744073709551615 |
|
float |
單精度浮點型 |
32 |
-3.402823e38 至 3.402823e38 |
|
double |
Double |
雙精度浮點型 |
64 |
-1.79769313486232e308 至 1.79769313486232e308 |
char |
單 Unicode 字符 |
16 |
文本中使用的 Unicode 符號 |
|
bool |
邏輯布爾值類型 |
8 |
True 或 False |
|
object |
所有其他類型的基類型 |
|
|
|
string |
字符序列 |
|
|
|
decimal |
精確小數類型或整型,可以表示帶有 29 個有效位的十進制數 |
128 |
±1.0 × 10e−28 至 ±7.9 × 10e28 |
|