gpt4 book ai didi

c# - Azure Functions 中的静态与非静态类和方法

转载 作者:行者123 更新时间:2023-12-03 00:54:28 24 4
gpt4 key购买 nike

几乎每个 Azure Functions 示例都使用带有静态方法的静态类。

[FunctionName("HttpTriggerCSharp")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]
HttpRequest req, ILogger log);

但是,我至少见过一个示例,其中触发器是在具有非静态方法的非静态类中定义的。请参阅HttpTrigger2 here .

[FunctionName("HttpTrigger2")]
public Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)]
HttpRequest req, ExecutionContext context, ILogger log)

到目前为止,我的所有函数都是静态的,但我已经厌倦了这种代码模式,因为我经常必须提取私有(private)方法来帮助提高可读性。这迫使我将多个参数传递给这些方法,这样我就可以避免获取相同的数据或实例化相同的对象。最后,开发速度变慢,并且我有很长的方法签名。理想情况下,我应该能够定义类变量并在任何地方使用它们。

我的问题是我们是否应该将函数声明为静态,因为 Functions 应该是无服务器的?在第二个示例的情况下,运行时的行为如何?

最佳答案

函数可以是静态的,也可以不是静态的。例如,使用非静态类/方法将允许您使用依赖项注入(inject)。

这里有一个有趣的相关帖子:

关于c# - Azure Functions 中的静态与非静态类和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73347423/

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