2010-08-09 85 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);