如何将 String 扩展应用于 Func

发布于 2024-08-24 10:10:31 字数 453 浏览 7 评论 0原文

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

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

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

GetName = getName

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

如何将该扩展应用到 Func?

谢谢

I have a constructor signature like this

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

Inside that constructor I am assigning the getName to a property of the containing class

GetName = getName

I have a string extension that does casing on a string call String.CapitalizeWords();

How do I apply that extension to the Func?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

岁月染过的梦 2024-08-31 10:10:31

你可以做

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

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

You could do

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

But why do you need a parameterless function, returning a String instead of the String itself?

静待花开 2024-08-31 10:10:31

那么这是 GetName 属性的签名吗?

string GetName{get;set;}

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

GetName=getName().CapitalizeWords();

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

Func<string> GetName{get;set;}

您可能需要做

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

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

So is this the signature for the GetName property?

string GetName{get;set;}

If so, I guess all you need to do is

GetName=getName().CapitalizeWords();

Otherwise if the signature is like this:

Func<string> GetName{get;set;}

you'd probably need to do

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

I hope I understood your question :P

后来的我们 2024-08-31 10:10:31

它将在那里显示运行 getName 的结果,而不是在 getName 本身上。 GetName 是一个将返回字符串的函数的委托;它本身不是一个字符串。您应该能够执行String CapName = GetName().CapitalizeWords()

It will be there for the results of running getName, not on getName itself. GetName is a delegate to a function that will return a string; it is not itself a string. You should be able to do String CapName = GetName().CapitalizeWords().

北城孤痞 2024-08-31 10:10:31
GetName = () => getName().CapitalizeWords();
GetName = () => getName().CapitalizeWords();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文