這篇文章主要介紹了C#中的自動類型轉換和強制類型轉換,非常不錯,具有一定的參考借鑑價值 ,需要的朋友可以參考下
前面已經認識了不同的數據類型,你們有沒有嘗試過讓不同的數據類型進行運算呢?
int a = 1; double b = a; Console.WriteLine(b);
運行結果是:1
我們把一個整型的變量賦值給了一個浮點型的變量,可以正常的輸出,如果我們把一個浮點型的變量賦值給一個整型的變量呢?
double a = 1; int b = a; Console.WriteLine(b);
這樣就會報錯。
爲什麼呢?因爲我們之前說過,變量就像一個容器,裏面存放着變量的值。而數據類型就相當於容器的類型,決定了容器能夠存放什麼樣的值。
試想,生活中我們把小盒子裏的東西放進大盒子裏,是沒有問題的。數據類型也是這樣。我們把整型的數據賦值給浮點型是可以放進去的,放進去之後裏面的值1其實也就變成了浮點型,即1.0,不過c#輸出的時候,很聰明的把後面的.0去掉了。
結論:佔字節小的可以向佔字節大的自動轉換,但佔字節大的不能向佔字節小的自動轉換。
這種數據類型的轉換是自動完成的,所以叫做自動類型轉換。
如果我偏要把字節大的賦值給字節小的怎麼辦呢?試想,生活中我們把大盒子中的東西裝進小盒子,東西少還好,東西多了就只能裝進去一部分了。現在我說,我不聽我不聽,我就是要把大盒子的東西裝進小盒子。哭唧唧……
沒辦法,我們只能使用強制類型轉換,即把佔字節大的數據類型強制轉換爲佔字節小的數據類型。
double a = 1.2; int b = (int)a; Console.WriteLine(b);
我們在引用變量a給b賦值時,在a前面加了個括號,就是把數據類型強制轉換爲括號裏的數據類型。我們運行一下,結果是:1
a的值是1.2,強制類型轉換賦值給了b之後就只剩1了,因爲整型的沒有小數部分,所以裝不下了啊。
總結
以上所述是小編給大家介紹的C#中的自動類型轉換和強制類型轉換 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對神馬文庫網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝