西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

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

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

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

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

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

在.Net中,微軟給我們提供了很多不同的創(chuàng)建對(duì)象實(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)建對(duì)象(泛型方法)

首先需要?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)建對(duì)象:

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)建對(duì)象的方式,大家可以猜猜這些創(chuàng)建對(duì)象的方式當(dāng)中那個(gè)會(huì)比較快。

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

    相關(guān)評(píng)論

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

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

    熱門評(píng)論

    最新評(píng)論

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

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