问题标签 [static]

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 投票
12 回答
101811 浏览

c++ - 头文件中的变量声明 - 静态与否?

当重构掉一些时,#defines我在 C++ 头文件中遇到了类似于以下内容的声明:

问题是,静电会产生什么不同(如果有的话)?#ifndef HEADER #define HEADER #endif请注意,由于经典技巧(如果重要的话),不可能多次包含标题。

VAL如果标头包含在多个源文件中,静态是否意味着只创建一个副本?

0 投票
2 回答
8792 浏览

php - Php 检查是否声明了静态类

如何检查是否已声明静态类?ex 给定班级

稍后在代码中我如何检查:

所以我没有得到:致命错误:第 3 行的 file.php 中找不到类 'bob'

0 投票
6 回答
1194 浏览

c - 将全局重构为本地。它们应该是静态的吗?

我正在重构“意大利面条代码”C 模块以在多任务 (RTOS) 环境中工作。

现在,有很长的函数和许多不必要的全局变量。

当我尝试用局部变量替换仅存在于一个函数中的全局变量时,我陷入了困境。每个全局变量都表现得像本地“静态” - 例如,即使您退出并重新进入函数,也保持其值。

对于多任务处理,“静态”本地变量是全局变量中最差的。它们使函数不再重新输入。

有一种方法可以检查函数是否在保留变量值重新进入而不跟踪所有逻辑流的情况下进行中继?

0 投票
37 回答
514386 浏览

java - 为什么Java main 方法是静态的?

Javamain方法的方法签名是:

这种方法必须是静态的有什么原因吗?

0 投票
9 回答
10886 浏览

java - Java 中静态方法的替代方案

我正在为我正在编写的 Java 程序制作一个迷你 ORM……我的数据库中的每个表都有一个类,所有表都继承自ModelBase.

ModelBase是抽象的,提供了一堆静态方法来从数据库中查找和绑定对象,例如:

所以你可以做一些事情,比如ModelBase.findAll(Albums.class)获取所有持久专辑的列表。我的问题是,在这个静态上下文中,我需要从具体类 Album 中获取适当的 sql 字符串。我不能有像这样的静态方法

因为Java中没有静态方法的多态性。但是我不想在其中创建getSelectSQL()一个实例方法,Album因为我需要创建它的一个实例只是为了获得一个行为上真正静态的字符串。

目前,findAll()使用反射来为有问题的类获取适当的 sql:

但这太恶心了。

那么有什么想法吗?这是我一次又一次遇到的一个普遍问题——无法在类或接口中指定抽象静态方法。我知道为什么静态方法多态性不能也不能工作,但这并不能阻止我想再次使用它!

是否有任何模式/结构可以让我确保具体的子类 X 和 Y 实现一个类方法(或者如果失败,一个类常量!)?

0 投票
8 回答
4219 浏览

c++ - 什么是数据区?

在 C++ 中,存储类说明符 static 从数据区域分配内存。“数据区”是什么意思?

0 投票
4 回答
1316 浏览

c# - 替代静态类库

我有大量包含非常通用的静态方法的静态“实用程序”类。例如,我有一个 CollectionUtility 类,它具有有用的方法,例如:

公共静态无效 RemoveDuplicates(ICollection 集合)...等

在 C# 3.0 中,我一直在将这些转换为扩展方法。

现在,我听到一些谈话,在“企业级”应用程序中,通常认为最好的做法是避免使用这些静态类和方法的大型库。我想它可能很难维护。

对于那些为大公司从事大型企业项目的人来说,一个问题 - 你是否维护这样的实用程序类库?你是什​​么?

0 投票
4 回答
10442 浏览

c# - C#中静态构造函数/初始化器的顺序

在开发 C# 应用程序时,我注意到在几个地方静态初始化器相互依赖,如下所示:

没有做任何特别有效的事情。这只是运气吗?C# 是否有解决此问题的规则?

编辑:(回复:Panos)在文件中的词法顺序似乎是王道?跨文件呢?

在寻找时,我尝试了这样的循环依赖:

并且程序运行不一样(测试套装全面失败,我没有进一步研究)。

0 投票
5 回答
1440 浏览

c# - 初始化静态对象 - 代码设计问题

在我的 Web 应用程序(C#,.Net 3.5)中,由一个核心类库(包含业务逻辑、数据层和几个实用程序类)、一个 Windows 服务项目、一个 Web 服务项目和网站项目组成,我有一个所有其他项目使用的核心库中的几个静态类。这些类(例如Log类)需要一些初始化(它们有一个Initialize方法)才能设置它们以供使用。例如,Log类的Initialize方法有一个目录路径参数,它告诉Log将日志文件保存到哪里。或者我正在考虑加载日志的“设置”静态构造函数中的配置文件中的类。缺点是,我需要在生产代码中进行不同的单元测试设置。

有没有更好的方法来设计这个?这种方法的缺点是,静态类的所有使用者都将尝试调用 Initialize。这不是一个真正的问题,因为一旦初始化,该方法将立即返回,而不是再次执行 Initialize 代码,但设计对我来说似乎有点奇怪。

我希望我的英语足以解释我所追求的。如果问题不够清楚,请不要犹豫。

0 投票
4 回答
1798 浏览

visual-studio - C++中的静态库问题

我正在尝试使用我在 Visual C++ 2005(非托管 C++)中创建的静态库。我声明了一个函数“int myF(int a);” 到 .h 文件中,我在 .cpp 文件中实现它,我编译它 - 生成 .lib 文件。

我在 VC++ 2005(也是本机 C++)中创建了一个新项目(一个单独的解决方案),我添加了包含文件和 lib 文件的路径;当我调用函数 myF 时,链接器报告错误:“错误 LNK2019:未解析的外部符号 _myF 在函数 _main 中引用”。如果我在与库项目相同的解决方案中创建客户端项目,然后添加对库项目的引用,它可以工作,但我不会像这样实现所有内容,而是将外部库添加到我的项目中。 .

怎么了?

谢谢你。