App下載

C# 編程語言學(xué)習(xí)系列(二)

士大夫 2021-12-07 12:12:39 瀏覽數(shù) (2748)
反饋

學(xué)習(xí) C# 的第二天,今天將學(xué)習(xí)一下 C# 的變量以及它的基礎(chǔ)數(shù)據(jù)類型的內(nèi)容。

首先回答一下上一篇文章所提到的兩個疑惑:

(1)一個程序中既然可以有多個命名空間和類,那么如何將它們聯(lián)系在一起?

(2)一個程序中命名多個命名空間和類,這樣的操作值得推薦嗎?

一個程序中有多個命名空間和類,也是一樣可以使用 ?using ?關(guān)鍵字來引用命名空間。?using ?關(guān)鍵字的使用要么是放在所有元素的前面,要么放在命名空間內(nèi)定義的所有元素之前。其他的命名空間的類方法使用,可以通過類.方法名來調(diào)用。

至于第二個是否放在一起,這應(yīng)該是看個人習(xí)慣。筆者個人喜歡是拆分開來,一是讓程序看上去干凈明了,不會顯得混雜;第二整理起來,也比較輕松一些。

一、變量

變量的定義

<data_type> <value_name>;
<data_type> <value_list>;

在 C# 中,每個變量都會有一個特定的類型。因此,在聲明變量之前,就得先定義這個變量屬于什么數(shù)據(jù)類型的。

變量可以一個一個定義,同時也是可以連續(xù)定義。如 value_list 就是由逗號隔開的標(biāo)識符組成的。

int x, y, z;
char c, n;
float e, f;

連續(xù)定義的前提是,這些變量都是同屬于一個數(shù)據(jù)類型的。

初始化賦值

C# 中在定義完數(shù)據(jù)類型之后,就可以給變量賦值相應(yīng)類型的值。

例如:

int x, y, z;
x = 1;
y = 2;
z = 3;

char c, n;
c = 'c';
n = 'n';

除了定義后在賦值的操作,可以直接在定義變量的類型時候,同時賦予它變量值:

int x=1, y=2, z;
char c='c', n='n';

用戶輸入值

用戶可以通過? Console.ReadLine() ?方法來輸入值。不過,這些值默認都是屬于字符串類型的,因此如果想要將輸入轉(zhuǎn)換的值轉(zhuǎn)換為其他的類型。例如輸入整數(shù),則可以使用? Convert.ToInt32(string); ?將對應(yīng)的字符串轉(zhuǎn)換為整數(shù)類型:

int m = Convert.ToInt32(Console.ReadLine());

標(biāo)識符

標(biāo)識符是用來識別類、變量、函數(shù)或者任何其他用戶定義的項目。標(biāo)識符必須遵守以下的基本規(guī)則:

  • 標(biāo)識符必須以字母、下劃線或者@開頭,后面可以是數(shù)字、字母、下劃線、@符號。
  • 標(biāo)識符第一個數(shù)字一定不能是個數(shù)字。
  • 標(biāo)識符不能包含任何嵌入的空格或者符號。
  • 標(biāo)識符不能是 C# 的關(guān)鍵字。除非關(guān)鍵字前面有一個@前綴。例如:@if是有效的標(biāo)識符,但if不是。
  • 標(biāo)識符必須區(qū)分大小寫,大寫和小寫字母會被認為是不同的字母。
  • 標(biāo)識符不能和 C# 類庫名相同。

二、數(shù)據(jù)類型

C# 中,變量可以被分為:值類型、引用類型和指針類型三種數(shù)據(jù)類型。

值類型

羅列一些常用的值類型:

  • bool(默認值:false)
  • int(默認值:0)
  • double(默認值:0.0D)
  • float(默認值:0.0F)
  • decimal(默認值:0.0M)
  • char(默認值:’\0’)

引用類型

引用類型不包含存儲在變量中的實際數(shù)據(jù),但它們包含對變量的引用。

引用類型指向的是一個內(nèi)存位置。

內(nèi)置的引用類型:

對象類型(Object)

對象類型是 C# 通用類型系統(tǒng)中所有數(shù)據(jù)類型的最終積累。

當(dāng)一個值類型轉(zhuǎn)換為引用類型,該行為被稱為裝箱;當(dāng)一個引用類型轉(zhuǎn)換為值類型,該行為被稱為拆箱。

object obj; // 申明對象類型
obj = 100; // 這是裝箱

動態(tài)類型(Dynamic)

可以存儲任何類型的值在動態(tài)數(shù)據(jù)類型變量中,這些變量的類型檢查是檢查時發(fā)生的。

dynamic = 100;

與對象類型相似,但是對象類型是在編譯時發(fā)生的,而動態(tài)類型是在檢查時發(fā)生的。

字符串類型(String)

char 是字符類型,只能賦給它一個值。

字符串則是可以賦給它一串字符。

char c ='n';
string s = "I am the king!"

除此之外,char 使用單引號包裹著字符,string 是使用雙引號包裹著字符串。

字符串除了可以用雙引號來進行分配,同時也可以使用@雙引號來進行分配。

例如:

string s = @"The first word
good nice \n
biuuuuuuuuu!";

在這里插入圖片描述

字符串前面加上 @,被稱為逐字字符串。在這其中,轉(zhuǎn)移符號 \ 將會失效。同時也是按照在程序中的格式來輸出文本。

指針類型(Pointer Types)

指針類型變量存儲另一種類型的內(nèi)存地址。

聲明語法:

type* identifier;

char* cptr;
int* iptr;

三、總結(jié)

C# 變量的定義,初始化。用戶輸入值的轉(zhuǎn)換,以及標(biāo)識符要遵循的規(guī)則。

三大數(shù)據(jù)類型:值類型、引用類型和指針類型。

其中了解了值類型的部分常用數(shù)據(jù)類型,引用類型的三個類型的介紹。


C#

0 人點贊