zoukankan      html  css  js  c++  java
  • C#語法學習裝箱(box)和拆箱(unbox)

     




    /*
     * Created by SharpDevelop.
     * User: Administrator
     * Date: 2008/9/4
     * Time: 上午 12:10
     * 
     
    */

    using System;
    class Test
    {
        
    static void Main()
        {
            
    int i=123;//第一次裝箱
            object o=i;
            i
    =456;
            
    //這里由於使用了+號也就會調用字符串的
            
    //String.Concat(Object,Object,Object);
            
    //這也就讓下面的都需要轉換成Object類型
            Console.WriteLine(i //第二次裝箱
                              + ",  " +
                              (
    int)o);//這里先發生一次拆箱,再接著發生第三次裝箱
        }
    }
    //問題:上面的程序會進行幾次裝箱和拆箱.
    //3次裝箱,1次拆箱.
    //這里也就告訴我們在寫程序的時候不注意就進行裝箱和拆箱的操作
    //為了提高程序的性能我們可以裝輸出語句改為下面的:
    //Console.WriteLine(i + ", " + o);輸出結果一致.這時候進行了兩次裝箱
    //Console.WriteLine(i.ToString() + ", " + o);輸出結果一致.這時候進行了一次裝箱

    /*
     * Created by SharpDevelop.
     * User: Administrator
     * Date: 2008/9/4
     * Time: 上午 12:27
     * 裝箱和拆箱的性能問題:
     * Box 和 Unbox 處理是大量耗用運算資源的處理序。當實值型別經 Box 處理時,必須建立全新的物件。這個過程需要的時間可能是指派的 20 倍。執行 Unbox 處理時,轉換處理序所需的時間可能是指派的四倍。
     * 上面這句是MSDN的說法,因此在實際編程中我們要盡能避免裝箱和拆箱操作.
     
    */
    using System;
    using System.Collections;
    struct Person
    {
        
    private string _name;
        
    public Person(string name)
        {
            _name
    =name;
        }
        
    public string Name
        {
            
    get { return _name; }
            
    set { _name=value; }
        }
    }
    class Test
    {
        
    static void Main()
        {
            ArrayList arr
    =new ArrayList();
            Person p
    =new Person("張三");
            arr.Add(p);
    //把結構體裝放數組中的時候會進行裝箱操作
            p.Name="李四";
            Console.WriteLine(p.Name);
            Console.WriteLine(((Person)arr[
    0]).Name);
        }
    }

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    ZOJ 1002 Fire Net
    Uva 12889 One-Two-Three
    URAL 1881 Long problem statement
    URAL 1880 Psych Up's Eigenvalues
    URAL 1877 Bicycle Codes
    URAL 1876 Centipede's Morning
    URAL 1873. GOV Chronicles
    Uva 839 Not so Mobile
    Uva 679 Dropping Balls
    An ac a day,keep wa away
  • 原文地址:https://www.cnblogs.com/Athrun/p/1283630.html
Copyright © 2011-2022 走看看