private static Dictionary<Type, Func<string, object>> _parseActions
= new Dictionary<Type, Func<string, object>>
{
{ typeof(bool), value => {Convert.ToBoolean(value) ;}}
};
上面给出了一个错误
Error 14 Not all code paths return a value in lambda expression of type 'System.Func<string,object>'
但是,下面这没问题。
private static Dictionary<Type, Func<string, object>> _parseActions
= new Dictionary<Type, Func<string, object>>
{
{ typeof(bool), value => Convert.ToBoolean(value) }
};
我不明白两者之间的区别。我认为 example1 中的额外大括号是为了让我们在 anon 函数中使用多行,那么为什么它们会影响代码的含义呢?
最佳答案
第一个使用代码块,如果您使用 return
,它只会返回一个值关键词:
value => { return Convert.ToBoolean(value); }
第二,作为一个表达式不需要显式的
return
.
关于function - 为什么一个 Func 有效而另一个(几乎相同)无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2690300/