C 隱式型別

2021-06-20 03:23:23 字數 824 閱讀 2138

隱式型別

(1)源起

在隱式型別出現之前,

我們在宣告乙個變數的時候,

總是要為乙個變數指定他的型別

甚至在foreach乙個集合的時候,

也要為遍歷的集合的元素,指定變數的型別

隱式型別的出現,

程式設計師就不用再做這個工作了。

(2)使用方法

來看下面的**:

var a = 1; //

int a = 1;

var b = "

123";//

string b = "123";

var myobj = new myobj();//

myobj myobj = new myobj()

上面的每行**,與每行**後面的注釋,起到的作用是完全一樣的

也就是說,在宣告乙個變數(並且同時給它賦值)的時候,完全不用指定變數的型別,只要乙個var就解決問題了

(3)你擔心這樣寫會降低效能嗎?

我可以負責任的告訴你,這樣寫不會影響效能!

上面的**和注釋裡的**,編譯後產生的il**(中間語言**)是完全一樣的

(編譯器根據變數的值,推導出變數的型別,才產生的il**)      

(4)這個關鍵字的好處:

你不用在宣告乙個變數並給這個變數賦值的時候,寫兩次變數型別

(這一點真的為開發者節省了很多時間)

在foreach乙個集合的時候,可以使用var關鍵字來代替書寫迴圈變數的型別

(5)注意事項

你不能用var關鍵字宣告乙個變數而不給它賦值

因為編譯器無法推導出你這個變數是什麼型別的。

C 隱式型別

隱式型別 using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace 隱式型別var a.gettype consol...

C 隱式型別轉換

c 定義了一組內建型別物件之間的轉換標準,在必要時它們被編譯器隱式的應用到物件上。發生隱式型別轉換的情景 1,在混合型別的算術表示式中 轉換原則 轉換為最寬的資料型別。也可叫,算術轉換。int ival 5 double dval 3.14 ival 被提公升為double型別 ival dval ...

C 隱式型別轉換

眾所周知,c 的基本型別中並非完全的對立,部分資料型別之間是可以進行隱式轉換的。所謂隱式轉換,是指不需要使用者干預,編譯器私下進行的型別轉換行為。很多時候使用者可能都不知道進行了哪些轉換。c 物件導向的多型特性,就是通過父類的型別實現對子類的封裝。通過隱式轉換,你可以直接將乙個子類的物件使用父類的型...