2010-08-09 87 views
2

我將一部分代碼項目文章(http://www.codeproject.com/KB/linq/auto-logging-data-context.aspx)轉化爲VB.Net供我自己使用,但我已經運行了一段以前所未見的方式編寫的C#代碼,而我卻沒有知道如何轉換:C#字典沒有值類型選項?

private static Dictionary<type,> _cachedIL = new Dictionary<type,>(); 

對我來說,這看起來像一個字典decleration沒有指定的值的類型。後來在同一個代碼塊筆者返回了我認爲是做了一個委託,看起來語法類似:

return ((Func<t,>)myExec)(myObject); 

理解任何幫助什麼怎麼回事,如何CONVER它VB.Net會最受讚賞。

+0

你添加問題或在文章直接評論?它似乎是一個HTML渲染錯誤(也許)。 – ja72 2010-08-09 18:19:28

回答

1

幾行下來:

Delegate myExec = null; 
if (!_cachedIL.TryGetValue(typeof(T), out myExec)) 

從,它應該是

private static Dictionary<type, Delegate> _cachedIL 
     = new Dictionary<type,Delegate >(); 

我認爲這只是一些格式問題。

2

有問題的代碼是無效的代碼,沒有辦法將其轉換。這或者是作者的錯誤,或者作者正在關注其他方面,這是僞代碼。

+0

謝謝。我想這解釋了我的困惑:) – Peter 2010-08-09 18:22:18

0

也許文章作者沒有正確設置代碼的格式,因此CodeProject上渲染引擎打亂了該行與他們<>字符。除此之外,似乎還有其他問題。盡我所能告訴代碼應爲:

private static Dictionary<Type, Delegate> _cachedIL = new Dictionary<Type, Delegate>(); 

return ((Func<T, T>)myExec)(myObject);