C#中顯式轉換與隱式轉換

來源:互聯網
上載者:User

using System;<br />using System.Collections.Generic;<br />using System.Linq;<br />using System.Text;</p><p>namespace CSharp基礎<br />{<br /> class 類型轉換<br /> {<br /> public static void Main()<br /> {<br /> //byte b1 = 22;<br /> //byte b2 = 33;<br /> //在下面這句中,b1+b2預設是會返回一個int,但是我們聲明為byte,會產生位元組丟失,所以系<br /> //統不會隱式轉換,去產生編譯錯誤.<br /> //byte total = b1 + b2;<br /> //如果我們用long去存結果,一定是不會丟資料的,些處系統做了一個隱式轉換<br /> //long total = b1 + b2;<br /> //可空類型與普通類型之間不可隱式轉換,這是因為有null的處理,如果能轉,那麼普通值無法處理null<br /> //int? a = 22;<br /> //int b = a; 錯<br /> //可空類型可以與可空類型探索隱式轉換,規則與普通類型一致<br /> //int? a = 99;<br /> //long? b = a;<br /> //int? a = 255;<br /> //byte? b = a; 錯,雖然255確實在byte可接受範圍之內 </p><p> Console.WriteLine( "------------顯式類型轉換---------------------");<br /> //long a = 2000000000000;<br /> //int b = (int)a;<br /> //Console.WriteLine( b );<br /> //以上代碼中,long顯示轉換為int會丟掉其中的幾個位元組,而long中的值恰好又大於int的表式範圍,所以最後出現的值<br /> //不是我們所希望的 </p><p> //long a2 = 65535;<br /> //int b2 = (int)a2;<br /> //Console.WriteLine( b2 );<br /> //以上代碼同樣是一個顯示轉換,而65535是在int位元組範圍之內,以後即便丟掉位元組後,值仍然沒有變,是我們希望的結果 </p><p> //考慮一個問題,以上兩各方式,是不是存在一種僥倖,那麼萬一要是超出範圍呢,我們怎麼控制?<br /> //c#為我們提供了checked方式檢查值的溢出 </p><p> //long a3 = 20000000000000000;<br /> //int b3 = checked( (int)a3); //運行時刨出異常 </p><p> //小數強轉為整數時會丟失其小數部分<br /> //float price = 23.5f;<br /> //int reInt = (int)(price + 0.5f);<br /> ////以上方式加0.5f是為了四捨五入價格的最接近整數,一般用於不再參與運算,只做展示,推薦! </p><p> //Console.WriteLine( reInt ); </p><p> //分析字串,進行值轉換<br /> //string str = "65535";<br /> //int i = int.Parse(str);<br /> //Console.WriteLine(i); </p><p> //string str2 = "false";<br /> //bool i2 = bool.Parse(str2);<br /> //Console.WriteLine(i2); </p><p> Console.Read();</p><p> }<br /> }<br />}</p><p>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.