问题标签 [static-variables]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
104 浏览

c# - 将元素传递到类 c#

我之前问过一个类似的问题,所以如果这有点重复,我很抱歉。

这是我的问题,我有一个在页面加载时有标签的母版页我将此控件传递给我拥有的全局类,在类内部是这样的:

在我做的母版页加载事件上

现在说我在应用程序的其他地方有一个控件,我说

这将更新母版页上的标签,一切正常。现在我的这个只有一个用户登录并且这个应用程序将有多个用户,我的问题是因为我在全局类中声明标签静态如果我更新一个用户的标签这会影响其他用户看到的内容?

有更好的方法吗?谢谢你的时间。

0 投票
3 回答
163 浏览

c# - 我要疯了吗?c# / 静态修饰符

filename我有下面的代码,奇怪的是,如果我在同一个请求中多次调用它,它会继续返回相同的值(即使)是不同的。

我刚刚单步执行了代码,甚至stringbytes完全相同(即 GetBytes(string))返回相同的值。

0 投票
2 回答
8744 浏览

c - C中静态变量的初始化

可能重复:
C中静态变量的初始化

我知道全局变量或静态变量在 C 中都会自动初始化为零。但是,我不确定它们是否都被初始化或只有其中一个被初始化。请注意,我不是在谈论在函数中定义的变量,而是在 .c 文件中全局定义的变量。

那么以下哪些变量会自动初始化为零?

0 投票
2 回答
43567 浏览

c++ - 未命名命名空间优于静态命名空间?

未命名的命名空间如何优于static关键字?

0 投票
3 回答
42110 浏览

c# - c#:静态方法中的静态变量

你可以在静态方法中有一个静态变量吗?该变量的值是否会在对该方法的所有调用中保留?

例如。

0 投票
5 回答
52079 浏览

c++ - C++静态成员变量及其初始化


对于 C++ 类中的静态成员变量 - 初始化在类外完成。我想知道为什么?对此有任何逻辑推理/限制吗?或者它是纯粹的遗留实现 - 标准不想更正?

我认为在类中进行初始化更“直观”且不那么混乱。它还给出了变量的静态和全局性的感觉。例如,如果您看到静态 const 成员。

0 投票
3 回答
19633 浏览

c++ - 在全局范围内使用静态变量和函数

static当变量位于 .cpp 文件的全局范围内而不是函数中时,将其标记为 是否有用?

你也可以对函数使用 static 关键字吗?如果是,它们的用途是什么?

0 投票
4 回答
1386 浏览

c++ - 用什么代替静态变量

在 C++ 程序中,我需要一些辅助常量对象,这些对象将被实例化一次,最好是在程序启动时。这些对象将主要在同一个翻译单元中使用,因此最简单的方法是将它们设为静态:

但是还有这个静态初始化顺序问题,所以如果Helper引用其他一些静态(通过params),这可能会导致UB。

另一点是我最终可能需要在几个单位之间共享这个对象。如果我只是把它static放在一个 .h 文件中,那将导致多个对象。我可以通过打扰externetc 来避免这种情况,但这最终会引发相同的初始化顺序问题(并不是说它看起来非常 C-ish)。

我考虑过单例,但由于样板代码和不方便的语法(例如MySingleton::GetInstance().MyVar),这将是矫枉过正 - 这些对象是助手,所以它们应该简化事情,而不是使它们复杂化......

相同的 C++ FAQ提到了这个选项:

这真的被使用并被认为是一件好事吗?我应该这样做,还是您会建议其他替代方案?谢谢。

编辑:我应该澄清为什么我实际上需要那个助手:它们非常像普通常量,并且可以预先计算,但在运行时这样做更方便。我更愿意在 main 之前实例化它们,因为它会自动解决多线程问题(在 C++03 中本地静态不受保护)。此外,正如我所说,它们通常仅限于翻译单元,因此导出它们并在 main() 中初始化是没有意义的。您可以将它们视为常量,但仅在运行时才知道。

0 投票
4 回答
4562 浏览

c - 在 C 中的 main 之前调用一些函数

我想在main功能之前做一些事情。我有多个源文件。在每个文件中,都有一些工作需要在main. 这在 C++ 中没有问题,但在 C 中存在问题。

在 C++ 中,这可以通过两种方式完成:

  1. 利用全局类/结构的构造函数。
  2. 调用全局变量的函数

例如,static const int __register_dummy_ = __AddRegisterMetaInfo(...);

但是,在 C 中,任何一种方式都是不可能的。显然,没有构造函数。所以,第一种选择本质上是不可能的。

我认为第二个选项是可能的,但不是用 C 编译的(我只用 Visual C++ 进行了测试。它给出了C2099。)。C 只允许将常量转换为非自动变量。

有什么方法可以在main之前调用一些函数吗?


编辑:似乎很多人误解了我真正想做的事情。很抱歉以简化的方式写下这个问题。

我需要做的是实现一种 C++ 运行时类信息功能,就像MFC 的方法一样。在这种方法中,我需要从所有源代码中获取一些信息。例如,假设每个源文件都有一个类的定义,我想查看所有信息(例如,类名和父类)。最简单的方法是在每个文件中放置一个静态构造函数,每个构造函数访问一个全局数据结构并注册其信息。但是,我也想找到一种方法在 C 中实现类似的东西。所以,简单地调用 a pre_main_jobinmain不能成为我的答案。

请注意,这种对静态构造函数的滥用也可以在 LLVM 编译器套件中找到。每个优化/分析功能都被实现为一次通过。所有这些通行证都是通过静态构造函数注册的。

0 投票
3 回答
247 浏览

java - 一个类的其他实例能否访问另一个类的静态变量?

我有一个类,我知道它将由 URLClassLoader 为它的每个实例加载,所以如果我有一个静态变量,其他实例是否能够访问它?

比如ClassLoader A和ClassLoader B分别加载了Class MyClass,我想知道A加载的MyClass是否会和B加载的MyClass有相同的静态字段。

所以基本上,以下陈述是否总是正确的: