日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁編程開發(fā)C#.NET → .Net中各種不同的對象創(chuàng)建方式的速度差異(一)

      .Net中各種不同的對象創(chuàng)建方式的速度差異(一)

      相關(guān)軟件相關(guān)文章發(fā)表評論 來源:tonyhuang時(shí)間:2010/2/24 14:54:05字體大小:A-A+

      作者:佚名點(diǎn)擊:234次評論:1次標(biāo)簽: 對象創(chuàng)建

      • 類型:系統(tǒng)其它大小:2.2M語言:中文 評分:10.0
      • 標(biāo)簽:
      立即下載

      在.Net中,微軟給我們提供了很多不同的創(chuàng)建對象實(shí)例的方法,它們的速度又各有不同,以下一一列舉。

      使用new關(guān)鍵字

      這在.Net中是最常見,也是速度最快的方式:

      var instance = new Class();
      使用System.Activator類的CreateInstance方法動(dòng)態(tài)創(chuàng)建

      這里的CreateInstance指的是Activator的非泛型方法:

      var instance = System.Activator.CreateInstance(typeof(Class));
      使用System.Activator類的CreateInstance<T>方法動(dòng)態(tài)創(chuàng)建

      這里的CreateInstance才是Activator的泛型方法:

      var instance = System.Activator.CreateInstance<Class>();
      使用泛型約束,使用new關(guān)鍵字創(chuàng)建對象(泛型方法)

      首先需要?jiǎng)?chuàng)建一個(gè)泛型的方法:

      public static T CreateInstance<T>() where T : new()
      {
      return new T();
      }
      這里利用泛型約束where T: new(),保證了T類型是可以用無參構(gòu)造器構(gòu)造的,所以代碼里面就可以直接使用new T()來創(chuàng)建對象:

      var instance = CreateInstance<Class>();
      使用泛型類的靜態(tài)方法、泛型約束和new關(guān)鍵字創(chuàng)建

      這里需要首先創(chuàng)建一個(gè)泛型類

      public static class StaticInitializer<T> where T:new()
      {
      public static T CreateInstance()
      {
      return new T();
      }
      }
      然后使用如下代碼創(chuàng)建實(shí)例:

      var instance = StaticInitializer<Class>.CreateInstance();
      使用泛型類的動(dòng)態(tài)方法、泛型約束和new關(guān)鍵字

      這里使用的是泛型類的實(shí)力方法,需要首先創(chuàng)建一個(gè)泛型類:

      public class DynamicInitializer<T> where T:new()
      {
      public T CreateInstance()
      {
      return new T();
      }
      }
      使用的方法就是:

      var initializer = new DynamicInitializer<Class>();
      var instance = initializer.CreateInstance();
      Ok,現(xiàn)在我一共提出了6種不同的創(chuàng)建對象的方式,大家可以猜猜這些創(chuàng)建對象的方式當(dāng)中那個(gè)會比較快。

      使用new關(guān)鍵字
      使用System.Activator類的CreateInstance方法動(dòng)態(tài)創(chuàng)建
      使用System.Activator類的CreateInstance<T>方法動(dòng)態(tài)創(chuàng)建
      使用泛型約束,使用new關(guān)鍵字創(chuàng)建對象(泛型方法)
      使用泛型類的靜態(tài)方法、泛型約束和new關(guān)鍵字創(chuàng)建
      使用泛型類的動(dòng)態(tài)方法、泛型約束和new關(guān)鍵字
      大家可以在評論里面給這些方法排個(gè)序,明天的文章我將會公布測試的結(jié)果

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(1)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)