我很困惑,爲什麼我不能把它稱爲函數,我如何讓自己把它稱爲函數?在lambda中調用函數<string,object>
Error 1 'fn' is a 'variable' but is used like a 'method'
來源
Func<List<object>, List<object>, Func<string, object>> test;
test = (ls, fn) => fn(null);
我很困惑,爲什麼我不能把它稱爲函數,我如何讓自己把它稱爲函數?在lambda中調用函數<string,object>
Error 1 'fn' is a 'variable' but is used like a 'method'
來源
Func<List<object>, List<object>, Func<string, object>> test;
test = (ls, fn) => fn(null);
我很困惑。
是的。讓我們不要混淆你。
這是怎麼回事?
Func<List<object>, List<object>, Func<string, object>> test;
test = (ls, fn) => fn(null);
這是說test
是一個函數,它接受兩個列表,並從字符串返回功能對象。這些清單是ls
和fn
。所以fn
的類型是List<object>
,這不是可以調用的東西。
也許你應該在這裏描述你要做的事情,因爲它從代碼中看不清楚。
它猜想免費獲贈
List<object>
,Func<string, object>
並返回List<object>
我不認爲這可能是正確的,因爲你要調用該功能並獲得List<object>
回來,但一Func<string, object>
返回object
。
也許你打算寫是
Func<List<object>, Func<string, List<object>>, List<object>> test;
test = (ls, fn) => fn(null);
現在的ls
類型是List<object>
和fn
類型爲Func<string, List<object>>
。所以當fn
被調用時,它將返回,如test
所要求的那樣。
有意義嗎?
請記住,在Func<A, B, R>
中,A和B是參數類型,R是返回類型。
你可能想下面
Func<List<object>, Func<string, List<object>>, List<object>> test;
或
Func<List<object>, Func<string, object>, object> test;
這個工作
test = (ls, fn) => fn(null);
您可能需要類似:
static void Main(string[] args)
{
Func<List<object>, List<object>, Func<string, object>> test = Test;
}
private static Func<string, object> Test(List<object> objects, List<object> list)
{
throw new NotImplementedException();
}
我不知道你想要什麼,但這種編譯和作品:
public void SomeMethod()
{
Func<List<object>, List<object>, Func<string, object>> test = (a, b) =>
{
a = b;
return AnotherMethod;
};
}
public object AnotherMethod(string value)
{
return (object)value;
}
什麼是'fn'的definiton? – 2013-02-15 21:31:02
fn有類型列表
'fn'是一個'列表