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

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

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

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

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

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

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

使用new關(guān)鍵字

這在.Net中是最常見(jiàn),也是速度最快的方式:

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

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

var instance = System.Activator.CreateInstance(typeof(Class));
使用System.Activator類(lèi)的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類(lèi)型是可以用無(wú)參構(gòu)造器構(gòu)造的,所以代碼里面就可以直接使用new T()來(lái)創(chuàng)建對(duì)象:

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

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

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

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

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

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

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

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

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門(mén)評(píng)論

    最新評(píng)論

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

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