问题标签 [static-class]

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 回答
21902 浏览

c# - 在静态类中访问或获取 Autofac Container

我需要在静态类中获取或访问我的 IoC 容器。这是我的(简化的)场景:

我在 Startup 类中注册了 ASP .net Web Api 的依赖项(但我也为 MVC 或 WCF 执行此操作。我有一个 DependecyResolver 项目,但为简单起见,请考虑以下代码)

然后,在一个单独的类库中,我有我的静态类(为清楚起见再次简化):

知道我怎么能得到这个吗?

0 投票
2 回答
811 浏览

c# - 典型三层业务层中的静态方法与实例方法

目前,我正在使用 ASP.NET MVC 构建一个典型的 3 层 Web 应用程序。我已经使用依赖注入(Autofac)设置它,如下所示:

存储库是使用 EF 的典型通用存储库。

问题是我的应用程序有很多实体,对于每个实体,我必须在服务层复制上述代码以进行 CRUD 操作。例如:对于实体“角色”,我有“InsertRole”、“UpdateRole”、“DeleteRole”……还有更多其他实体。因此,我尝试通过使用如下静态方法将 CRUD 操作提取到静态类“CommonService”来重构以删除重复代码:

通过这个类,我将删除服务中用于 CRUD 操作的重复代码。在 Controller 中,我只需调用 CommonService.Insert(user);... 现在对我来说真的很好。我仍然有其他正常的服务方法,并且没有重复 CRUD。但我想知道除了单元测试之外,这种方法是否有任何缺点(我不会对 CRUD 进行单元测试)。Web环境(ASP.NET MVC)中的内存管理和并发处理有什么问题吗?我还没有使用 EF 实现数据处理的并发机制(同时更新实体......)

提前致谢!米尔多尔。

0 投票
2 回答
87 浏览

c# - ASP C# 接口

我正在使用 ASP.NET MVC5 项目。我是商业编程的新手,我对接口有点困惑,我以前没有使用过它们。我有一个几乎完成的项目。

这是一个例子:

我也上课实施这项服务

如果我的控制器作为示例,我正在使用 UserService:

为什么不使用 IUserService 而不是使用 UserService 作为静态类而不实现 IUserService?

如果在这种情况下类似,使用接口有什么好处?

0 投票
0 回答
872 浏览

c# - C#使用反射设置静态类的属性值

我必须在 C# 中读取一个文件 .ini,其中每个部分对应一个静态类,每个部分中的值对应于类的一个属性。我举个例子:

我以这种方式创建了一个类数据库

因此,当我阅读 [Database] 时,我必须阅读所有参数,如果 Database 类中存在此参数的名称,我必须设置他的值。

我怎么能这样做?我想我必须使用反射,但我不能使用它。

我发布了我编写的代码,但是当到达这一行时,elencoProprietà 为空。

0 投票
1 回答
1093 浏览

unit-testing - 如何在静态方法中模拟对对象的静态方法调用?

我是 Junit 测试的新手,但我必须测试一些代码。我想现在我知道了它的基础知识,但是我仍然遇到了一个我在互联网上找不到任何东西的问题:

这是我要测试的课程:

我不希望系统创建整数“第一”和“第二”。相反,我只希望它们为“1”,这样我就可以测试最后几行代码是否正常工作。

MyDB 是具有静态方法(someMethod() 和 someOtherMethod())的公共类

我想测试方法methodToTest。我尝试使用参数调用此方法,最后将修改后的参数与预期参数进行比较。

我使用 Mockito 和 PowerMockito。

这是我的尝试之一:

我得到的例外是:“传递给 when() 的参数不是模拟!”

我希望任何人都可以帮助我。我花了这么多小时来解决这个问题,但没有成功。

谢谢!!!

0 投票
5 回答
12973 浏览

c# - 静态类 VS 私有构造函数

今天,我一直在阅读有关静态类和私有构造函数的内容。

静态类 - 我们不能在静态类上创建实例。我们不能继承静态类。仅生成单个实例。

Private Constructor - 我们无法创建实例。我们不能继承。(我不知道生成了多少实例。)

我创建了两个控制台应用程序,即一个用于静态类,一个用于私有构造函数。

静态类代码

在此处输入图像描述

我理解作为构造函数生成的单个对象被调用一次。

私有构造函数代码

在此处输入图像描述

现在,我不明白是否生成了任何对象。

我有两个问题。

问题 1. 我没有发现 Private 构造函数和 Static 类之间有什么特别的区别。您能否建议我在哪种情况下应该使用 Private Constructor 以及应该在哪里使用静态类,因为我可以同时使用它们。

问题2.如果我使用私有构造函数,会生成多少个对象?

谢谢。

编辑 :

我认为人们没有理解我的问题。我知道静态构造函数总是在第一次引用时调用一次。静态构造函数用于初始化类的静态成员。

问题 1. 我有一种情况:我需要创建一个无法实例化的类。我可以通过静态类或私有构造函数来完成。所以我的问题是“它们之间有什么区别吗?我应该使用哪一个??”

问题 2. 如果我使用私有构造函数,会创建多少个对象?如果答案为 0,那么私有构造函数的内存分配如何在 CLR 中工作。如果我使用私有构造函数,则没有内存分配。

0 投票
1 回答
153 浏览

java - 每个对象的静态或新实例?

我看到一些代码看起来像

如果我们把C cvar. (这是 A 类所有对象的默认设置)对于每个类对象A,我们只是为类的大对象使用大量内存A,也许更好地制作 C c静态?我们将为整个类只创建一个类实例,C并将其用于类的每个对象A。如果我们这样做,之后的代码会喜欢

}

我认为这是更好的方法,也许我错了。请给我建议。

0 投票
0 回答
124 浏览

python - Python - 硬件 IO 的静态接口

这是一个有点笼统的问题,如果我违反了任何准则,请原谅我。我正在编写一个 JQuery / websocket / Flask 应用程序,它使用 Raspberry Pi 来监视一些传感器以及管理一些活动硬件。由我的 Flask 实现的服务器生成的多个类和对象需要能够访问我的硬件。

根据我的编程背景(对 Python 来说相对较新),我会倾向于使用无需实例化即可运行的类方法的静态类。

我找到了有关如何在 Python 中执行此操作的文档,但我不确定这是最好的方法。实例化一个对象并传递它是更 Pythonic 还是...?

这是我现在正在使用的非静态面向对象的代码(我认为以下的静态版本将满足我的需求,但我想做最适合该语言的事情):

0 投票
1 回答
129 浏览

c++ - c++静态观察者类

我有两个程序:服务器和客户端

这是网络类

这是 Gui 类

这是协议

协议被认为是一个“静态类”,这意味着它不应该被实例化。所以想法是,当从服务器Protocol::readPacket获取 a时packet,它应该能够将信息发送到GUI. 但是,情况并非总是如此,因此传递点/参考并不是我想要的。

它没有很好地说明,但想法是: -Protocol::readPacket寻找我们是否需要调用GUI - 协议不应该接受另一个参数,也不应该被实例化。

有人给了我关于使用观察者模式的建议。Protocol将是主题和GUI观察者。但是,如果没有实例化协议,我就无法做到。

那么有没有办法在没有实例化协议的情况下做到这一点?

0 投票
1 回答
50 浏览

java - 在 Java 中访问静态嵌套类的方法

我了解到静态嵌套类应该像外部类的字段一样访问(第 2 行)。但即使直接实例化内部类(第 1 行)。你能帮我理解吗?