自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#裝箱和拆箱

開發(fā) 后端
本文介紹了C#裝箱和拆箱的概念,并且舉了一個(gè)實(shí)例進(jìn)行補(bǔ)充說明,希望對(duì)大家有用。

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

裝箱轉(zhuǎn)換是指將一個(gè)值類型隱式地轉(zhuǎn)換成一個(gè)object類型,或者把這個(gè)值類型轉(zhuǎn)換成一個(gè)被該值類型應(yīng)用的接口類型,把一個(gè)值類型的值裝箱,也就是創(chuàng)建一個(gè)object實(shí)例并將這個(gè)值復(fù)制給這個(gè)object.  

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

  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;  //封箱;從值類型轉(zhuǎn)換到object類型  
  25.             Mystruct s1 =(Mystruct)ob;  //拆箱  從object類型轉(zhuǎn)換到值類型  
  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#裝箱和拆箱內(nèi)容就介紹到這里,希望對(duì)大家有所幫助。

【編輯推薦】

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

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

2015-09-02 10:12:54

Java自動(dòng)裝箱拆箱

2020-11-02 13:06:42

Java裝箱拆箱

2009-08-11 15:17:12

C#基礎(chǔ)知識(shí)

2010-05-04 08:58:02

.NET

2009-08-11 14:20:41

C# .NET學(xué)習(xí)經(jīng)驗(yàn)

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-07-07 17:56:00

JDK1.5封箱及拆箱

2009-08-19 16:50:32

Visual C#C#語言特性

2009-08-10 10:04:25

C#抽象類C#接口

2009-08-19 10:09:21

C#和C++

2021-02-28 21:47:51

Java語法糖算數(shù)

2019-10-30 16:03:48

JavaJava虛擬機(jī)數(shù)據(jù)庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)