麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C# > 正文

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

2020-01-24 03:12:36
字體:
來源:轉載
供稿:網友

1、Convert.ToInt32(); //轉換成32位的整數。
2、變量.ToString();/最常見的轉換成 字符串。
3、"訂單"+2514 //后面的數字會轉換為字符串。
4、((類名A)對象名X) //強行將 對象X 轉換成 A類 的對象。
5、int.Parse(string);把字符串型轉換成其他類型。
6、還有,如果要轉換成的類型為引用類型,還可以用 as
teacher tea = teahcer();
如 student stu = tea as student;
 
(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#數據類型轉換示例:

復制代碼 代碼如下:

struct Number
{
 private int value;
 public Number(int value) { this.value=value; }
 //用戶自定義整型到Number型的隱式轉換
 static public implicit operator Number(int value) { return new Number(value); }
 //用戶自定義從Number型到整型的顯示轉換
 static public explicit operator int(Number n) { return n.value; }
 //用戶自定義從Number類型到string類型的隱式轉換
 static public implicit operator string(Number n) { return n.ToString(); }

class Test
{
 static public void Main()
 {
  Number n;
  n=10;
  Console.WriteLine((int)n);
  //隱式轉換到string
  Console.WriteLine(n);
 }
}

使用System.Convert類
將一個基本數據類型轉換為另一個基本數據類型。
使用Parse方法
大部份預定義值類型都有這個靜態方法,用來將相應的文本轉化為相應的值類型。

裝箱和取消裝箱
裝箱和取消裝箱使值類型能夠與 object 類型相互轉換。
裝箱轉換允許將“值類型”隱式轉換為“引用類型”。將“值類型”的值裝箱的操作包括:分配一個對象實例并將“值類型”的值復制到該實例中。

C#數據類型轉換示例:
此例將整數變量 i 通過裝箱轉換為對象 o。此例顯示對象保留了內容的原始副本,即 123。
復制代碼 代碼如下:

public static void Main()
{
 int i=123;
 object o=i;//隱式的裝箱
 i=456;//改變變量i的值
 Console.WriteLine("Thevalue-typevalue={0}",i);//456
 Console.WriteLine("Theobject-typevalue={0}",o);//123是i的復制值
}

取消裝箱轉換:取消裝箱轉換允許將引用類型顯式轉換為值類型。
取消裝箱操作包括以下兩個步驟:首先檢查該對象實例是否是某個給定的值類型的裝了箱的值,然后將值從實例中復制出來。
C#數據類型轉換示例:
下面的示例闡釋無效取消裝箱的情況,即錯誤的取消裝箱如何導致 InvalidCastException。通過使用 try 和 catch,發生錯誤時會顯示錯誤信息。
復制代碼 代碼如下:

public class UnboxingTest
{
 public static void Main()
 {
  int intI=123;
  object o=intI;//裝箱
  try
  { //取消裝箱無效,short不是裝了箱的值類型.檢查該對象實例是否是某個給定的值類型的裝了箱的值
   int intJ=(short)o;
   Console.WriteLine("UnboxingOK.");
  }
  catch(InvalidCastException e)
  {
   Console.WriteLine("{0}Error:Incorrectunboxing.",e);
  }
 }
}

其它轉換用運算符
as
as 運算符用于執行引用類型的顯式類型轉換。 如果要轉換的類型與指定類型兼容,轉換就會成功;如果類型不兼容,則返回null。
表達式as 類型
as 運算符類似于類型轉換,所不同的是,當轉換失敗時,as 運算符將返回null,而不是引發異常。
示例:
復制代碼 代碼如下:

object o1=”SomeString”;
object o2=5;
string s1=o1 as string;//類型兼容s1=”SomeString”
string s2=o2 as string;//s2=null

is
is 運算符用于檢查對象的類型是否與給定類型兼容(對象是該類型,或是派生于該類型)。
表達式 is 類型
示例:
復制代碼 代碼如下:

int i=10;
if(iisobject)//true
{}

sizeof
sizeof 運算符用于獲得值類型的大?。ㄒ宰止潪閱挝唬?。
sizeof(type)
sizeof 運算符僅適用于值類型,而不適用于引用類型。
sizeof 運算符僅可用于 unsafe 模式。
示例:
復制代碼 代碼如下:

unsafe
{
 Console.WriteLine(“{0}”,sizeof(int));
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 史上最强炼体老祖动漫在线观看 | 成人9禁啪啪无遮挡免费 | 国产18成人免费视频 | 国产免费久久久久 | 久久毛片免费 | 亚洲综合一区二区三区 | 久久影院在线观看 | 欧美成网 | 失禁高潮抽搐喷水h | 99精品在线免费 | 国产精品久久久乱弄 | 一级国产航空美女毛片内谢 | 亚洲精品久久久久久久久久久 | 亚洲精品永久视频 | 精品国产一区二区三区在线观看 | 久久久久久久久久亚洲精品 | 成片免费观看视频大全 | 有兽焉免费动画 | 成人在线精品视频 | 亚洲第一综合 | 久久成人精品视频 | 久久一级 | 亚洲极色 | 成人午夜视频免费看 | 女人解衣喂奶电影 | 久草经典视频 | 在线天堂中文在线资源网 | 麻豆蜜桃在线观看 | 成人性生活视频在线观看 | 亚洲aⅴ免费在线观看 | 国产精品久久久久久久久久 | 国产精品久久久久久久久久久天堂 | 国产精品久久久久久影视 | 三级国产三级在线 | 精品国产一区二区三区四区阿崩 | 性少妇videosexfreexx入片 | 色毛片| 精品亚洲va在线va天堂资源站 | 成人国产在线看 | 国产午夜免费视频 | 亚洲码无人客一区二区三区 |