c# - 如何在没有全局变量的情况下持久化数据?

标签 c# global-variables

我习惯于脚本语言。 PHP、Javascript 等,我编写了一些相对简单的 Java 和 C# 应用程序。这是一个我一再需要答案的问题,我想我不是唯一一个。

假设我使用 Javascript。

我有函数 A(),由 GUI 调用,它检索一些值。

函数 B(),也由 GUI 调用,需要该值,但函数 B() 将在 A() 之后被调用任意次数,任意时间长度。

我不希望 A() 每次都重新计算值。

一个例子是登录凭证。 A() 要求输入用户名,B() 每次调用时都使用该值附加到日志。

为此,我可能只使用一个全局变量。

现在,C#。没有全局变量!我应该怎么做?

编辑: 享受答案,但有很多“尽量不要使用全局变量”的评论。我明白这一点,但我想听听满足此要求的替代模式。

最佳答案

这不是一个好的做法,但如果你真的需要它,有很多方法:

  1. Web 应用程序:您可以将变量放在某种上下文中,例如 session 或应用程序范围。
  2. 桌面应用程序:您可以创建一个对象并将其存储为始终有一个对象处于事件状态的类的属性。
  3. 任何类型的应用:使用公共(public)静态属性。每个人都可以看到。

关于c# - 如何在没有全局变量的情况下持久化数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/895595/

相关文章:

python - 如何处理模块中的全局变量?

c# - PictureBox 中的 DragDrop - DragEnter 永远不会被调用

c# - p/invoke 的结构变量的内存对齐 - 字符串丢失最后一个字符

c# - 私有(private)变量访问

c# - 如何允许此循环调用异步方法

php - 服务方法作为 Twig 全局变量

javascript - 尝试在函数之间传递 jQuery 移动范围 slider 值不起作用

Javascript全局变量与局部变量的冲突

C# 从字符串转换为 int 或 int32。可能的?

Javascript 全局函数设置局部变量