成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#數據類型轉換的幾種形式

開發 后端
C#數據類型轉換包括顯示轉換、隱式轉換、用戶自定義轉換,轉換是我們經常碰到的問題,希望本文能對大家有所幫助。

(1) 隱式轉換:一般是低類型向高類型轉化,能夠保證值不發生變化。

隱式數值C#數據類型轉換:

從 sbyte 到 short、int、long、float、double 或 decimal。

從 byte 到 short、ushort、int、uint、long、ulong、float double 或 decimal。

從 short 到 int、long、float、double 或 decimal。

從 ushort 到 int、uint、long、ulong、float、double 或 decimal。

從 int 到 long、float、double 或 decimal。

從 uint 到 long、ulong、float、double 或 decimal。

從 long 到 float、double 或 decimal。

從 ulong 到 float、double 或 decimal。

從 char 到 ushort、int、uint、long、ulong、float、double 或 decimal。

從 float 到 double。

不存在向 char 類型的隱式轉換,因此其它整型的值不會自動轉換為 char 類型。

浮點型不能隱式地轉化為decimal型

隱式枚舉轉換

隱式枚舉轉換允許將十進制整數 0 轉換為任何枚舉類型。

隱式引用轉換

派生類向基類轉換

隱式引用轉換是指一類引用類型之間的轉換,這種轉換總是可以成功,因此不需要在運行時進行任何檢查。

裝箱轉換

裝箱轉換允許將值類型隱式轉換為引用類型。

(2) 顯示轉換:也稱強制類型轉換。不能保證數據的正確性。

(type)(表達式)

(3) 用戶自定義C#數據類型轉換

所有的用戶自定義轉換都是靜態的,要使用static關鍵字

用戶自定義轉換分顯示和隱示,它們用implicit(隱式轉換)或 explicit(顯示轉換)關鍵字聲明。

static 訪問修辭符 轉換修辭符 operator 轉換類型(參數)

C#數據類型轉換示例:

  1. usingSystem;
  2. structNumber
  3. {
  4. privateintvalue;
  5. publicNumber(intvalue)
  6. {
  7. this.value=value;
  8. }
  9. //用戶自定義整型到Number型的隱式轉換
  10. staticpublicimplicitoperatorNumber(intvalue)
  11. {
  12. returnnewNumber(value);
  13. }
  14. //用戶自定義從Number型到整型的顯示轉換
  15. staticpublicexplicitoperatorint(Numbern)
  16. {
  17. returnn.value;
  18. }
  19. //用戶自定義從Number類型到string類型的隱式轉換
  20. staticpublicimplicitoperatorstring(Numbern)
  21. {
  22. returnn.ToString();
  23. }
  24. }
  25. classTest
  26. {
  27. staticpublicvoidMain()
  28. {
  29. Numbern;
  30. n=10;
  31. Console.WriteLine((int)n);
  32. //隱式轉換到string
  33. Console.WriteLine(n);
  34. }
  35. }

使用System.Convert類

將一個基本數據類型轉換為另一個基本數據類型。

使用Parse方法

大部份預定義值類型都有這個靜態方法,用來將相應的文本轉化為相應的值類型。

裝箱和取消裝箱

裝箱和取消裝箱使值類型能夠與 object 類型相互轉換。

裝箱轉換允許將“值類型”隱式轉換為“引用類型”。將“值類型”的值裝箱的操作包括:分配一個對象實例并將“值類型”的值復制到該實例中。

C#數據類型轉換示例:

此例將整數變量 i 通過裝箱轉換為對象 o。此例顯示對象保留了內容的原始副本,即 123。

  1. usingSystem;
  2. classTestBoxing
  3. {
  4. publicstaticvoidMain()
  5. {
  6. inti=123;
  7. objecto=i;//隱式的裝箱
  8. i=456;//改變變量i的值
  9. Console.WriteLine("Thevalue-typevalue={0}",i);//456
  10. Console.WriteLine("Theobject-typevalue={0}",o);//123是i的復制值
  11. }
  12. }

取消裝箱轉換:取消裝箱轉換允許將引用類型顯式轉換為值類型。

取消裝箱操作包括以下兩個步驟:首先檢查該對象實例是否是某個給定的值類型的裝了箱的值,然后將值從實例中復制出來。

C#數據類型轉換示例:

下面的示例闡釋無效取消裝箱的情況,即錯誤的取消裝箱如何導致 InvalidCastException。通過使用 try 和 catch,發生錯誤時會顯示錯誤信息。

  1. usingSystem;
  2. publicclassUnboxingTest
  3. {
  4. publicstaticvoidMain()
  5. {
  6. intintI=123;
  7. objecto=intI;//裝箱
  8. try
  9. {
  10. intintJ=(short)o;//取消裝箱無效,short不是裝了箱的值類型.檢查該對象實例是否是某個給定的值類型的裝了箱的值
  11. Console.WriteLine("UnboxingOK.");
  12. }
  13. catch(InvalidCastExceptione)
  14. {
  15. Console.WriteLine("{0}Error:Incorrectunboxing.",e);
  16. }
  17. }
  18. }

其它轉換用運算符

as

as 運算符用于執行引用類型的顯式類型轉換。 如果要轉換的類型與指定類型兼容,轉換就會成功;如果類型不兼容,則返回null。

表達式as 類型

as 運算符類似于類型轉換,所不同的是,當轉換失敗時,as 運算符將返回null,而不是引發異常。

示例:

  1. objecto1=”SomeString”;
  2. objecto2=5;
  3. strings1=o1asstring;//類型兼容s1=”SomeString”
  4. strings2=o2asstring;//s2=null

is

is 運算符用于檢查對象的類型是否與給定類型兼容(對象是該類型,或是派生于該類型)。

表達式 is 類型

示例:

  1. inti=10;
  2. if(iisobject)//true
  3. {}

sizeof

sizeof 運算符用于獲得值類型的大?。ㄒ宰止潪閱挝唬?。

sizeof(type)

sizeof 運算符僅適用于值類型,而不適用于引用類型。

sizeof 運算符僅可用于 unsafe 模式。

示例:

  1. unsafe
  2. {
  3. Console.WriteLine(“{0}”,sizeof(int));
  4. }

【編輯推薦】

  1. 概述C#實現文件下載
  2. C#搞定網站驗證碼的方法
  3. 淺談C# String對象
  4. C#命名空間學習筆記
  5. 淺析C#調用ActiveX控件
責任編輯:彭凡 來源: 51CTO博客
相關推薦

2009-09-01 16:35:55

C#操作String數

2009-08-27 15:47:00

C#數據類型string

2009-09-07 10:48:53

C#數據類型

2009-09-04 10:16:30

C#數據類型

2011-06-08 13:35:18

C#數據類型

2009-09-11 12:00:33

C#預定義數據類型

2009-08-13 15:19:17

C#數據類型

2009-07-30 15:57:30

C#時間

2009-08-14 13:52:18

C#判斷數據類型

2022-10-27 20:42:04

JavaScripJava編程語言

2009-08-28 10:08:02

C#數值類型之間轉換

2009-08-12 16:01:32

C#動態改變數據

2009-08-24 14:20:13

C# 強制類型轉換

2009-08-12 17:03:22

C#變量類型轉換

2009-08-14 11:15:45

C#基本數據類型

2011-06-08 13:50:39

C#類型轉換

2009-09-11 12:41:41

C#類型轉換

2024-12-09 12:00:00

Python編程數據類型轉換

2010-09-06 16:25:46

SQL函數

2010-03-30 16:33:55

Oracle數據類型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美视频免费在线观看 | 国产精品入口麻豆www | 日韩精品中文字幕一区二区三区 | 一区二区精品 | 精品日韩在线 | 99色在线视频| 日本成年免费网站 | 亚洲精品成人av久久 | 一本一道久久a久久精品蜜桃 | 成人毛片网 | 久久精品久久久 | av官网在线 | 亚洲日韩中文字幕一区 | 久久久综合网 | 久久精品成人一区 | 永久免费av | 日韩欧美国产电影 | 亚洲精品9999 | 国产98色在线 | 日韩 | 亚洲国产精品一区二区久久 | 在线观看视频91 | 黄片毛片免费看 | 羞羞网站免费 | 日本视频中文字幕 | 欧美久久久久久 | 精品一区二区三区入口 | 精品欧美一区二区久久久伦 | 在线观看日本高清二区 | 国产精品成人69xxx免费视频 | 日日操av | 久久在线 | 久久国产精品-国产精品 | 国产精品久久久久久久免费观看 | 野狼在线社区2017入口 | 自拍偷拍亚洲欧美 | 久久99精品久久久久蜜桃tv | 欧美日本久久 | 国产高清一二三区 | 国产激情精品一区二区三区 | 一区二区三区四区av | 欧美日韩综合视频 |