gpt4 book ai didi

c# - 静态方法困惑

转载 作者:行者123 更新时间:2023-11-30 13:51:46 25 4
gpt4 key购买 nike

我正在使用 Asp.NET,我有一个名为 PathFinder 的类它有类似 StyleBarPath(string BrandId,string ProductId) 的方法例如,它返回包括 brandId 的路径组合和 productId并且在同一个类中也有这样的方法。

我在想如何制作它们 static通过说 PathFinder.StylePath("1","2"); 在任何地方轻松调用它们的方法在 <a href=""></a> 中使用返回值用户控制。

但由于这些天我工作太多,我所知道的由于某些原因变得越来越复杂。无论如何,这是我的问题:

因为我在很多地方使用内联编码,比如 <a href='<%=PathFinder.StylePath("1","2")%>'></a> ,我不想通过这样做来创建很多实例 <a href='<%=new PathFinder().StylePath("1","2")%>'></a>通过声明方法不是静态的。

但是我害怕改变方法的返回值,因为定义方法是静态的。我的意思是当一个客户端调用这个方法时,它不会影响同时调用同一个方法的其他客户端?

他们应该有不同的调用堆栈吧?

让我们说:

  • 客户端 1 使用这些参数调用方法 -- {brandId:2,productId:3}
  • 客户端使用这些参数调用方法 -- {brandId:3,productId:4}

此操作几乎在服务器处理请求的同时发生。 我想了解的是调用是否相互影响并更改彼此的返回值,因为它们是静态定义的。

感谢您到目前为止的阅读并成为帮助者:)

我只是不想让客户看到path/1/2/当他们在等待path/2/3/

关于这个问题的一些注释:

  • 静态字段也是一样吗?

最佳答案

您可以同时从多个线程安全地调用一个静态方法,并在不同的时间给定以下条件:

  • 静态方法不访问自身以外的变量,或者这些变量也是线程安全的。
  • 静态方法不会产生非线程安全的副作用。

如果您的方法是它看起来的样子,那么您只是简单地获取一些输入来调整它们并返回结果,而无需访问函数之外的任何内容。那将是完全安全的。

静态字段与方法完全不同。它是变量的一个副本。对该静态字段的任何更改都会影响使用它的所有其他内容。

关于c# - 静态方法困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3990620/

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