我正在将代码项目文章(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将是非常感谢。
答案 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);