看看下面的代碼陳列品A:TryGetValue - 傳遞未初始化的值好嗎?
的字典string sql;
if (!GetQueries.TryGetValue(type.TypeHandle, out sql))
文件說,如果該鍵不存在,引用類型將被設置爲null。好沒關係。
如果找到密鑰,變量'sql'如何填充? 克隆的密鑰是否已找到值? 是否找到創建的項目的對象類型,然後複製對象的內容? 這是安全的嗎?
或者,設置爲出站對象駐留的地方,應該將呼叫被設置爲顯示出B:
var sql = string.Empty;
if (!GetQueries.TryGetValue(type.TypeHandle, out sql))
然後,變量「SQL」被初始化,該對象的安全的地方存在。
(我的問題來自於我對我的C編程天空指針的厭惡。)
['out' C#Reference](http://msdn.microsoft.com/en-us/library/t3c3bfhx.aspx)「雖然作爲out參數傳遞的變量不必在傳遞之前進行初始化,方法需要在方法返回之前分配一個值。「 – Habib 2014-09-25 13:49:01