即時嘗試編寫某種類型的強類型路由系統。 試想香港專業教育學院得到了一些類方法的是需要返回字符串將方法傳遞到泛型函數並調用它
public class SomeClass
{
public string MethodA(string str)
{
return string.Format("SomeClass :: MethodA {0}", str);
}
}
而且我想我的主要方法看起來像這樣
class Program
{
static void Main(string[] args)
{
var col = new SomeCollection();
col.Add<SomeClass>("url", c => c.MethodA("test")); //Bind MethodA to "url"
}
}
所以我的問題是:
- 什麼應該添加方法簽名?
- 如何在SomeCollection中調用MethodA?
我想這會是這樣的
public class SomeCollection
{
public void Add<TController> (string url, Func<TController, string> exp)
{
// Add func to dictionary <url, funcs>
}
public void FindBestMatchAndExecute (Request request)
{
//Search url in collection and invoke it's method.
//Method params we can extract from request.
}
}
問題是:你從哪裏得到'SomeClass'的實例應該傳入lambda表達式? –
@defaultlocale:'c'是lambda表達式的參數,就像'x'在'Select(x => x.Id)'中一樣。 –
@DanielHilgarth,謝謝,實際上我誤解了這個問題。 –