【发布时间】:2011-08-24 20:19:28
【问题描述】:
我不熟悉委托和 lambda,但此时我必须做这两件事:
- 其中之一是:
我需要将函数传递给 SortedList。不知道怎么弄。
为什么我需要它,是:
private string Func1(string s) { return s + "1"; }
private string Func2(string s) { return s + "2"; }
private string Func3(string s) { return s + "3"; }
private void WhatEver()
{
SortedList<string, ???> list = new SortedList<string, ???>;
list.Add("Func1", Func1);
list.Add("Func2", Func2);
list.Add("Func3", Func3);
// And after that I have to pass values and get results from functions
// Like
Console.WriteLine(list["Func1"]("Test"));
Console.WriteLine(list["Func2"]("Test"));
Console.WriteLine(list["Func3"]("Test"));
// Output should be:
//
// Test1
// Test2
// Test3
}
- 第二:
可以用字符串调用函数吗?
例如:
假设我有三个文本框和一个函数:
tbFunction
tbArgument
tbResult
private string Test(string number)
{
int x = int.Parse(number);
return (x * x).ToString();
}
假设我在 tbFunction.Text 中有“Test”,在 tbArgument.Text 中有“2”,我怎样才能将结果带到 tbResult.Text
【问题讨论】:
-
我真的不知道你在这个问题的第一部分想要做什么。请删除有关将函数传递给 SortedList 的特定于实现的详细信息,然后说出您要完成的工作,好吗? -- 另外,看起来你正在尝试做类似字典,而不是 SortedList...
标签: c# function delegates lambda