乙個 快取並使用Out 引數的 有趣現象

2021-05-22 23:54:50 字數 779 閱讀 1741

現象描述:

我有乙個 快取使用類,其有乙個方法,從快取中獲取乙個 dictionary物件, 用out 的方式,將其傳出 為物件b

但有趣的 是 當b裡有add(key,value)的行為後,快取中的dictionary物件 也會有相應的鍵值對

同時 當 b裡有clear()的行為後 ,快取中的dictionary物件也變成了null。

應用層 修改物件b  如   //tempdic.clear();

private dictionarytempdic = new dictionary();

public listgetallsubject()

return null;

}關於 this.trygetcache(out tempdic);

的詳細資訊

public static bool trygetcache(string cachekey,out t t)

else

}catch 

}**說明 : 如上所示 trygetcache(string cachekey,out t t)

就是將  httpruntime.cache裡的值 傳出到 tempdic ,但tempdic 得變化,同步到了  httpruntime.cache裡的值;這就是本文想描述的現象。以此為戒,以後使用 out方式時 要注意。(因為最開始在應用層只要一呼叫tempdic.clear(),快取就沒有了,但始終查不出來原因,折騰幾個來回,才明白是out的緣故;)

原因分析的過程 參見《c#中ref和out引數使用時需要注意的問題》

乙個有趣的故事

我有乙個老同學,乙個人娶了兩個老婆,一中一外。這件事情在紐約的華人裡面非常轟動,老同學自己從來不迴避,他經常出沒各種派對,嘴裡叼著雪茄菸,手裡拿著香檳說 我他媽得做個床,能睡三個人的床連他媽美國都沒賣的。老同學的大老婆是個美國人,在華爾街做事情,而且非常出色 二老婆是上海人,我沒見過本人,只看過 漂...

乙個有趣的題目

看到qq群裡有人發了乙個很有意思的題目 如果 昨天是明天就好了,那麼今天就是周五了,請問句中的今天是週幾?晚上睡覺的時候又想起這個問題,發現這個問題還大有文章,其實問題的關鍵在於上面的綠色背景的如果兩個字,既然是如果,那麼思維就可以完全發散,如果時間可以穿越,明天真的可以穿越到昨天,那麼今天其實就是...

乙個有趣的統計

出於好玩的態度,我從4月起開始持續對我的部落格每日訪問情況在excel中做了個記錄,記錄的格式如下 今天頭腦中突然閃過乙個念頭,對週末和非週末的訪問情況做個統計,於是寫了個模組 sub statistic dim i as integer dim visitdatestr as string dim...