C#Dictionary没有Value type选项?

时间:2010-08-09 18:11:38

标签: c# vb.net c#-to-vb.net

我正在将代码项目文章(http://www.codeproject.com/KB/linq/auto-logging-data-context.aspx)的部分内容转换为VB.Net以供我自己使用,但我遇到了一段以前所未见的方式编写的C#代码。我不知道如何转换:

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

对我而言,这看起来像是一个没有为该值指定类型的字典。稍后在相同的代码块中,作者返回我认为是一个代表语句类似的代理:

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

任何帮助理解这里发生的事情以及如何将其转换为VB.Net将是非常感谢。

3 个答案:

答案 0 :(得分:2)

有问题的代码不是有效的代码,没有办法转换它。这可能是作者的错误,也可能是作者关注的另一个方面,这是伪代码。

答案 1 :(得分:1)

几行:

Delegate myExec = null;
if (!_cachedIL.TryGetValue(typeof(T), out myExec))
从那以后,它应该是

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

我认为这只是一些格式问题。

答案 2 :(得分:0)

也许文章作者没有正确格式化代码,因此代码项目渲染引擎将其中的<>个字符排成一行。看起来除此之外还有其他问题。我可以告诉代码最好:

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

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