在第一章我們了解了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)顯式[又叫強制]類型轉換
舉個簡單例子:
飛機場里面停飛機,這是理所當然,我們把這種叫做隱式[又叫自動]類型轉換
那如果我們反過來看一看,飛機里面裝飛機場,這個在我們實際生活中,覺得這是根據不可能的,
但是程序可以做到這一點,我們把這種叫做顯式[又叫強制]類型轉換
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

