gin*_*boy 5 delegates function anonymous-methods c#-3.0
private static Dictionary<Type, Func<string, object>> _parseActions
= new Dictionary<Type, Func<string, object>>
{
{ typeof(bool), value => {Convert.ToBoolean(value) ;}}
};
Run Code Online (Sandbox Code Playgroud)
以上给出了错误
错误14并非所有代码路径都返回类型为'System.Func <string,object>'的lambda表达式中的值
但是下面的确如此.
private static Dictionary<Type, Func<string, object>> _parseActions
= new Dictionary<Type, Func<string, object>>
{
{ typeof(bool), value => Convert.ToBoolean(value) }
};
Run Code Online (Sandbox Code Playgroud)
我不明白两者之间的区别.我认为example1中的额外大括号是允许我们在anon函数中使用多行,那么为什么它们会影响代码的含义呢?
Mar*_*tos 16
第一个使用代码块,如果使用return关键字,它只返回一个值:
value => { return Convert.ToBoolean(value); }
Run Code Online (Sandbox Code Playgroud)
第二个,只是一个表达式,不需要明确return.