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

C#裝箱和拆箱

開發 后端
本文介紹了C#裝箱和拆箱的概念,并且舉了一個實例進行補充說明,希望對大家有用。

C#裝箱和拆箱機制使得在C#類型系統中,任何值類型,引用類型和object類型之間進行轉換,簡單地說,有了C#裝箱和拆箱的概念,對任何類型的值來說,最終我們都可以看作是object類型.  

裝箱轉換是指將一個值類型隱式地轉換成一個object類型,或者把這個值類型轉換成一個被該值類型應用的接口類型,把一個值類型的值裝箱,也就是創建一個object實例并將這個值復制給這個object.  

C#裝箱和拆箱正好相反,拆箱轉換是指將一個對象類型顯式轉換成一個值類型,或是將一個接口類型顯式轉換成一個執行該接口的值類型.拆箱的過程分為兩步,首先,檢查這個對象實例,看它是否為給定的值類型的裝箱值,然后,把這個實例的值拷貝給值類型的變量.

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Text;  
  7. using System.Windows.Forms;  
  8.  
  9. namespace WindowsApplication2  
  10. ...{  
  11.     public partial class Form1 : Form  
  12.     ...{  
  13.         public Form1()  
  14.         ...{  
  15.             InitializeComponent();  
  16.         }  
  17.  
  18.         private void Form1_Load(object sender, EventArgs e)  
  19.         ...{  
  20.             Checker c = new Checker();  
  21.             ClassA ca=new ClassA();  
  22.             Mystruct s = new Mystruct();  
  23.             IClassB ib =ca;  //封箱;  
  24.             object ob =s;  //封箱;從值類型轉換到object類型  
  25.             Mystruct s1 =(Mystruct)ob;  //拆箱  從object類型轉換到值類型  
  26.             c.Getcheck(s1);  
  27.         }  
  28.     }  
  29.     public class Checker  
  30.     ...{  
  31.         public Checker()  
  32.         ...{  
  33.    
  34.         }  
  35.         public void Getcheck(object par)  
  36.         ...{  
  37.             if (par is ClassA)  
  38.             ...{  
  39.                 MessageBox.Show("YES,ClassA");  
  40.             }  
  41.             else 
  42.             ...{  
  43.                 MessageBox.Show("NO,ClassA");  
  44.             }  
  45.             if (par is IClassB)  
  46.             ...{  
  47.                 MessageBox.Show("YES,IClassB");  
  48.             }  
  49.             else 
  50.             ...{  
  51.                 MessageBox.Show("NO,IClassB");  
  52.             }  
  53.             if (par is Mystruct)  
  54.             ...{  
  55.                 MessageBox.Show("YES,Mystruct");  
  56.             }  
  57.             else 
  58.             ...{  
  59.                 MessageBox.Show("NO,Mystruct");  
  60.             }  
  61.         }  
  62.     }  
  63.     public class ClassA:IClassB  
  64.     ...{  
  65.           
  66.     }  
  67.     public class ClassB:IClassB  
  68.     ...{  
  69.  
  70.     }  
  71.     interface IClassB  
  72.     ...{  
  73.  
  74.     }  
  75.     struct Mystruct  
  76.     ...{  
  77.    
  78.     }  

C#裝箱和拆箱內容就介紹到這里,希望對大家有所幫助。

【編輯推薦】

  1. 總結C#哈希表的用法
  2. 不一樣的入門:看C# Hello World的17種寫法
  3. 什么是WMI?及其示例
  4. 從C#到C++容易出現的問題解答
  5. 淺議.NET、ASP.NET和C#的關系
責任編輯:book05 來源: csdn
相關推薦

2009-09-01 17:51:47

C#拆箱C#裝箱

2009-08-28 11:22:11

C#裝箱和拆箱

2009-08-06 15:40:11

C#裝箱和拆箱

2021-09-06 14:30:34

C#裝箱拆箱

2009-10-22 19:11:25

CLR Via C#教

2012-03-26 11:32:45

Java

2020-11-02 13:06:42

Java裝箱拆箱

2015-09-02 10:12:54

Java自動裝箱拆箱

2009-08-11 15:17:12

C#基礎知識

2009-08-11 14:20:41

C# .NET學習經驗

2010-05-04 08:58:02

.NET

2009-08-13 17:04:09

C#語言C#程序

2009-08-27 16:11:03

C# delegateC# event

2009-08-26 10:34:15

C#類型C#變量

2009-08-19 16:50:32

Visual C#C#語言特性

2009-07-07 17:56:00

JDK1.5封箱及拆箱

2009-08-10 10:04:25

C#抽象類C#接口

2009-08-19 10:09:21

C#和C++

2019-10-30 16:03:48

JavaJava虛擬機數據庫

2009-08-27 16:18:47

C#類C#結構體
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久91| av一区二区在线观看 | 99国产精品99久久久久久 | 国产视频精品区 | 国精产品一品二品国精在线观看 | 日韩视频在线播放 | 日本不卡视频 | 水蜜桃久久夜色精品一区 | 狠狠久久综合 | 亚洲精品欧美一区二区三区 | www.精品一区 | 久久久久久久久久久久亚洲 | 欧美性精品 | 国产精品久久久久aaaa樱花 | 蜜月aⅴ国产精品 | 久久爆操 | 久久久久久久夜 | 精品一区二区电影 | 免费看的av | 国精品一区 | 一区二区三区免费观看 | 日韩在线观看网站 | 一级黄色短片 | 国精日本亚洲欧州国产中文久久 | jlzzjlzz国产精品久久 | 久久av综合 | 91精品久久久久久久久中文字幕 | 亚洲国产一区二区三区在线观看 | 中文字幕精品一区久久久久 | 夜夜夜夜夜夜曰天天天 | 国产粉嫩尤物极品99综合精品 | www.久久久.com | 超碰在线免费av | 成人免费观看男女羞羞视频 | 日韩欧美三级 | 亚洲成网 | 国产电影一区 | 男女视频在线观看 | 精品久久精品 | 亚洲二区精品 | 一本一道久久a久久精品蜜桃 |