以下代码无法在Compact Framework 2(VS2008)上编译
public delegate TResult Func<out TResult>();
public delegate TResult Func<in T, out TResult>(T a);
public delegate TResult Func<in T1, in T2, out TResult>(T1 arg1, T2 arg2);
public delegate TResult Func<in T1, in T2, in T3, out TResult>(T1 arg1, T2 arg2, T3 arg3);
public delegate TResult Func<in T1, in T2, in T3, in T4, out TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4);
我不确定代码作者的意图,我需要知道如何工作。
有条件的信息: 此代码来自LinqBridge的源代码
由于
答案 0 :(得分:1)
代码只是定义了在.NET 2.0中尚未定义的各种Func
代理,
尝试取出in
和out
修饰符,因为它们在.NET 2.0中不受支持:
public delegate TResult Func<TResult>();
public delegate TResult Func<T, TResult>(T a);
public delegate TResult Func<T1, T2, TResult>(T1 arg1, T2 arg2);
public delegate TResult Func<T1, T2, T3, TResult>(T1 arg1, T2 arg2, T3 arg3);
public delegate TResult Func<T1, T2, T3, T4, TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4);