欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c#入門之類型轉換詳解

 更新時間:2014年04月15日 11:04:56   作者:  
這篇文章主要介紹了c#的類型轉換詳解,類型轉換分兩種形式:隱式轉換、顯示轉換,下面是詳細介紹

“無論是什么類型,所有的數據都是一系列的位,即一系列0和1。變量的含義是通過解釋這些數據的方式來傳達的?!薄@句原話是書上翻譯的,不過后一句話總感覺理解起來不是很通俗,自己覺得這樣理解可能會合適些:無論什么類型的數據,在計算機存儲時都是0和1,而變量的意義,就是以不同的方式來解釋這些數據,以達到滿足程序應用、節(jié)約內存等需求。

換句話說:變量存在的意義,就是建立規(guī)(標)范(準)的數據存儲方式。

隱式轉換

類型轉換分兩種形式:隱式轉換、顯示轉換。

隱式轉換不需要單獨的表達式,只需要把滿足隱式轉換條件的兩個變量做相應的表達式操作即可,但隱式轉換的結果可能并不是自己意料之中的:

復制代碼 代碼如下:

ushort destinationVar;
char sourceVar = 'a';
destinationVar = sourceVar;
Console.WriteLine("sourceVar: {0}", sourceVar);
Console.WriteLine("destinationVar: {0}\n",destinationVar);

上面的輸出結果,sourceVar的是a,而destinationVar雖然=sourceVar,但輸出的結果是97??梢钥闯觯m然兩種數據類型滿足隱式轉換的條件(存儲的值范圍),但不同的表達類型決定了最終的結果也不一樣。另外,和大多數編程一樣,隱式轉換時,只要類型A的取值范圍比類型B的范圍小,就可以隱藏轉換為B。

顯示轉換

在顯示轉換中,可以使用強制轉換和Convert。

強制轉換只在某些情況下可以,可能應用的場景不太豐富,當然,這個的確要方便一些,在變量前加上類似 (byte) 的代碼就可以了:

復制代碼 代碼如下:

byte destinationVar;
short sourceVar = 281;
destinationVar = (byte)sourceVar;
Console.WriteLine("sourceVar: {0}", sourceVar);
Console.WriteLine("destinationVar: {0}\n",destinationVar);

這個例子比較有意思,輸出的結果是:sourceVar: 281, destinationVar: 25; 為什么不是變更為255?這就回到開頭提到的了,其實轉換過程中,丟掉的是數據存儲的二進制位:

在轉換的過程中,會把超過取值范圍(255二進制位)的那個1丟掉,保留其它的位,所以最終結果是25,而不是255,也不是281。

Convert轉換應該是常用的方式,因為它始終會進行溢出檢查。

溢出檢查配置

有些東西雖然沒什么用,但是我們應該知道,否則出問題的時候就不知道怎么解決了。配置:解決方案資源管理器 - 右鍵 - 屬性 - 生成 - 高級 - 檢查運算上溢/下溢:

當然,對于強制轉換可能需要這個配置,但使用Convert轉換時始終會進行溢出檢查的,所以這個配置和checked/unchecked就不起作用了。

結語

每次一看見那些數據類型、表達式的列表表格就頭疼,因為根本記不住。就像哪些類型可以怎么轉換成其它的類型的表格一樣,其實個人感覺大可不必去記住這些,在實際做項目的過程中,只要記得有這方面的功能就行了,具體用哪一個,可以再回過頭來翻書或google。

應該掌握的是:記住存在隱式轉換,但這種方式應該盡量少用吧。而顯示轉換,方便的就直接用(),當然,最可靠的應該是Convert,因為在轉換時,Convert始終都會進行溢出檢查。

相關文章

  • C#?中的partial?關鍵字詳解

    C#?中的partial?關鍵字詳解

    這篇文章主要介紹了C#?中的partial?關鍵字,partial 關鍵字用于拆分一個類、一個結構、一個接口或一個方法的定義到兩個或更多的文件中,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • C# 一個WCF簡單實例

    C# 一個WCF簡單實例

    以訂票為例簡單應用wcf程序,需要的朋友可以參考下
    2012-10-10
  • C#列表框、復選列表框、組合框的用法實例

    C#列表框、復選列表框、組合框的用法實例

    這篇文章主要介紹了C#列表框、復選列表框、組合框的用法,實例分析了在一個簡單存儲項目中列表框、復選列表框、組合框的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • C#實現最簡單的文本加密方法

    C#實現最簡單的文本加密方法

    這篇文章主要介紹了C#實現最簡單的文本加密方法,可實現簡單的文本加密功能,是非常實用的技巧,需要的朋友可以參考下
    2014-12-12
  • C#學習基礎概念二十五問

    C#學習基礎概念二十五問

    C#學習基礎概念二十五問...
    2007-04-04
  • C#浮點數的表示和基本運算

    C#浮點數的表示和基本運算

    這篇文章主要介紹了C#浮點數的表示和基本運算,需要的朋友可以參考下
    2016-12-12
  • C#使用Dispose模式實現手動對資源的釋放

    C#使用Dispose模式實現手動對資源的釋放

    這篇文章主要介紹了C#使用Dispose模式實現手動對資源的釋放,涉及C#采用Dispose模式操作資源的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • C#使用TextBox作數據輸入方法

    C#使用TextBox作數據輸入方法

    筆者最近需要上位機與下位機進行數據交互,在廣泛參考大佬的資料后,較為完善地使用Textbox控件進行數據輸入的功能。感興趣的可以了解一下
    2021-06-06
  • C#實現的微信網頁授權操作邏輯封裝示例

    C#實現的微信網頁授權操作邏輯封裝示例

    這篇文章主要介紹了C#實現的微信網頁授權操作邏輯封裝,分析了微信網頁授權操作的原理、步驟并給出了C#實現的網頁授權操作邏輯封裝類,需要的朋友可以參考下
    2016-10-10
  • C#基于SerialPort類實現串口通訊詳解

    C#基于SerialPort類實現串口通訊詳解

    這篇文章主要為大家詳細介紹了C#基于SerialPort類實現串口通訊,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評論