2

我有一个这样的构造函数签名

public NavigationLink(Func<String> getName, 
                      Func<UrlHelper, String> getURL, 
                      Func<bool> isVisible, 
                      IEnumerable<NavigationLink> subItems)

在该构造函数中,我将 getName 分配给包含类的属性

GetName = getName

我有一个字符串扩展名,它对字符串调用 String.CapitalizeWords(); 进行大小写。

如何将该扩展应用到 Func?

谢谢

4

4 回答 4

3

你可以做

GetName = () => getName().CapitalizeWords();

但是为什么你需要一个无参数函数,返回一个字符串而不是字符串本身呢?

于 2010-03-10T16:14:19.913 回答
1

那么这是GetName财产的签名吗?

string GetName{get;set;}

如果是这样,我想你需要做的就是

GetName=getName().CapitalizeWords();

否则,如果签名是这样的:

Func<string> GetName{get;set;}

你可能需要做

GetName=getName;
string caps = GetName().CapitalizeWords();

我希望我理解你的问题:P

于 2010-03-10T16:26:35.087 回答
0

它将用于运行 getName 的结果,而不是在 getName 本身上。GetName 是一个函数的委托,它将返回一个字符串;它本身不是一个字符串。你应该可以做到String CapName = GetName().CapitalizeWords()

于 2010-03-10T16:14:42.697 回答
0
GetName = () => getName().CapitalizeWords();
于 2010-03-10T16:14:45.937 回答