gpt4 book ai didi

c# - 调用委托(delegate)时如何发送参数列表用作参数?

转载 作者:行者123 更新时间:2023-11-30 21:13:57 27 4
gpt4 key购买 nike

我在我的 asp.net mvc 3 应用程序中实现了一个简单的扩展方法,以使用泛型将对象从 session 中拉出:

public static T GetVal<T>(this HttpSessionStateBase Session, string key, Func<T> getValues)
{
if (Session[key] == null)
Session[key] = getValues();

return (T)Session[key];
}

如果 getValues() 不需要任何参数,这会很好用。

我试图编写一个重载,它接受 params object[] args 以允许我在必要时将参数传递给 getValues() 函数,但我不知道语法是什么将这些变量应用于函数。

这可能吗?预先感谢您的建议。

最佳答案

我认为您不需要这样做 - 调用者可以使用 lambda 表达式处理它。例如:

int x = session.GetVal<int>("index", () => "something".IndexOf("o"));

这里我们捕捉调用 IndexOf 的想法在 "something"传入参数 "o" .所有这些都在一个简单的 Func<int> 中捕获.

关于c# - 调用委托(delegate)时如何发送参数列表用作参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6521623/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com