<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Assembly(c#中簡單說明)
    2008-07-11 00:27

    什么是Assembly(程序集)?
    Assembly是一個包含來程序的名稱,版本號,自我描述,文件關聯關系和文件位置等信息的一個集合。在.net框架中通過Assembly類來支持,該類位于System.Reflection下,物理位置位于:mscorlib.dll。

    Assembly能干什么?
    我們可以通過Assembly的信息來獲取程序的類,實例等編程需要用到的信息。

    一個簡單的演示實例:
    1.建立一個Console工程名為:NamespaceRef
    2.寫入如下代碼:

    1using System;
    2using System.Collections.Generic;
    3using System.Text;
    4using System.Reflection;
    5
    6namespace NamespaceRef
    7{
    8    class Program
    9    {
    10        static void Main(string[] args)
    11        {
    12             Country cy;
    13             String assemblyName = @"NamespaceRef";
    14            string strongClassName = @"NamespaceRef.China";
    15            // 注意:這里類名必須為強類名
    16            // assemblyName可以通過工程的AssemblyInfo.cs中找到
    17             cy = (Country)Assembly.Load(assemblyName).CreateInstance(strongClassName);
    18             Console.WriteLine(cy.name);
    19             Console.ReadKey();
    20         }
    21     }
    22
    23    class Country
    24    {
    25        public string name;
    26     }
    27
    28    class Chinese : Country
    29    {
    30        public Chinese()
    31        {
    32             name = "你好";
    33         }
    34     }
    35
    36    class America : Country
    37    {
    38        public America()
    39        {
    40             name = "Hello";
    41         }
    42     }
    43}

    由于Assembly的存在給我們在實現設計模式上有了一個更好的選擇。
    我們在開發的時候有時候會遇到這樣的一個問題,根據對應的名稱來創建指定的對象。如:給出chinese就要創建一個chinese對象,以前我們只能這樣來寫代碼:
    1if (strongClassName == "China")
    2     cy = new China();
    3else if (strongClassName == "America")
    4     cy = new America();
    那么如果我們有很長的一系列對象要創建,這樣的代碼維護起來是很困難的,而且也不容易閱讀。現在我們可以通過在外部文件定義類的程序集名稱和類的強名稱來獲得這樣一個實例,即易于理解,又增強了擴展性還不用修改代碼。
    cy = (Country)Assembly.Load(assemblyName).CreateInstance(strongClassName);

    結論
    Assembly類有很多的方法和屬性,它和Type一樣有很多功能用于名稱與方法和屬性之間的轉化。深入理解這兩個類,你就可以清晰通用語言層是如何工作。

    文章來源:http://www.cnblogs.com/wangdetian168/archive/2008/10/18/1313990.html
    posted on 2010-09-30 12:22 sanmao 閱讀(218) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    常用鏈接

    留言簿(5)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品乱码久久久久久自慰| 亚洲福利视频一区二区三区| 国内永久免费crm系统z在线| 亚洲精品无码不卡| 日韩免费a级在线观看| 三上悠亚电影全集免费| 久久精品国产亚洲αv忘忧草| 国产成人在线观看免费网站| 成全动漫视频在线观看免费高清版下载| 亚洲午夜电影在线观看| 日韩亚洲国产二区| 91精品国产免费久久国语蜜臀| 亚洲经典千人经典日产| 亚洲av无码一区二区三区不卡| 免费黄色网址入口| 免费无码成人AV在线播放不卡| 久久亚洲AV成人无码国产最大| 久久99国产亚洲精品观看| 精品久久免费视频| 91香焦国产线观看看免费| 成人精品综合免费视频| 国产.亚洲.欧洲在线| 久久99国产亚洲高清观看首页| 成人爱做日本视频免费| 香港a毛片免费观看 | 青青草97国产精品免费观看| 亚洲视频国产视频| 国产亚洲av片在线观看18女人| 在线a人片天堂免费观看高清| 国产在线一区二区综合免费视频| 国产成人人综合亚洲欧美丁香花 | 国产91色综合久久免费| 国产人成网在线播放VA免费| 亚洲精品无码专区在线| 亚洲无人区视频大全| 国产亚洲人成网站观看| 亚洲人成网站色在线入口 | 亚洲精品国产情侣av在线| 国产亚洲精午夜久久久久久| 国产片免费福利片永久| 免费av欧美国产在钱|