问题标签 [static-classes]
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.
c# - 在 C# 中为全局对象使用静态类
我正在使用粒子列表。
通常我把这个列表放在我的模拟课上。它计算粒子的位置、速度和其他属性。
其他一些类需要此粒子数据用于输出和后处理。
是否可以创建一个静态类,
从其他类访问粒子数据?
.net - 静态类/成员在哪里分配?
自从我试图找出关于静态类的真相以来已经有很长时间了。我的观点是:使用 new 运算符时,值类型在堆栈中分配,在堆中分配引用类型。但是静态类的本质是您不能创建它的实例,并且确保它不是值类型。所以我有一个问题,CLR 何时何地为静态内容分配内存?关于什么时候......我想在编译期间,什么时候构建程序集,但我不确定。以及关于在哪里......当我试图找出我阅读 J.Richter 的“通过 C# 的 CLR”时,他写道,当你创建该特定的实例时,实例类的静态方法是在堆中分配的类(连同类型对象指针和同步块索引)。但我不明白。它是静态的。它应该 t 取决于对象的任何状态。所以请减轻我的负担。
java - 如何从 Java 中的另一个类调用非静态方法?
好吧,这有点乱:
我正在使用 Netbeans,并且我有一个名为 ParameterUI 的主类。(这是一个 GUI)这个类在它的 GUI 上有几个滑块,因为这些是私有的,所以我有一个名为 getBounds() 的方法。我不想弄乱我的 GUI,所以基本上计算东西的所有重要方法都在另一个名为 Structure 的类中。因此 ParameterUI 调用了 Structure 中的一个方法,该方法调用了自身内部的另外几个方法,其中一个调用了 getBounds。
问题是 getBounds 不能是静态的,但如果不是,我就不能调用它。
在 ParameterUI.class 中:
在 Structure.class 中:
使 myMethod 非静态似乎也无济于事。恐怕虽然我知道有关静态与非静态的基础知识,但我已经很久没有使用类等进行编程了。
编辑:本质上,我知道问题是什么,我正在寻找一种更好的方法来解决它。
c# - 如何强制静态类实现特定方法?
我需要创建一组静态类,它们都需要实现相同的方法。我想找到一种方法来强迫他们这样做。
我知道静态类不能派生 System.Object 以外的任何东西。我应该为此使用非静态方法吗?可能是,但是此类的所有方法都不会使用实例属性...
我最好的办法是我应该使用单例。那时我将使用一个实例,但至少我不必在每次需要使用方法时都实例化该类。
您建议的替代方案是什么?
编辑:
我不会实现这些方法。我需要强制其他开发人员实现具有特定签名的特定方法。每个班级的所有签名都是相同的。而已。
想象一下,您有一个静态类,可以从您办公室的数据库中获取记录。你有几种方法可以做到这一点。由于这些方法都不共享变量,因此它们被标记为静态,类也是如此。
现在,您和您团队中的其他开发人员必须对您无法控制的其他数据库甚至 API 执行相同的操作,这并不重要。您想强迫您的同事使用完全相同的方法和相同的签名来实现所有这些类。
您的意见总是受欢迎的,但现在我只想找到最接近的方法。
我可以使用所有其他人都可以继承的抽象类。但是由于这些方法不共享任何东西,我不希望每次需要它们时都实例化该类。
这就是我提到使用单例模式的原因。我不应该这样做吗?
language-agnostic - 我曾经读过静态类非常困难,甚至无法调试。这是真的吗?为什么?
我曾经读过静态类非常困难,甚至无法调试。这是真的吗?为什么?
如果一个例子有帮助,这里是一个PHP
我用来访问数据库的类(不过我不认为这是一个特定于 PHP 的问题):
c# - 当第一次访问静态类是基类上的静态方法时,为什么我的静态对象没有被实例化?
我有以下课程:
使用以下基类:
我遇到的问题是,当第一次使用静态类是通过基类中的方法时Changeover
,Withdrawal
并没有被创建。即如果我打电话,那么将是空的。Installation
Resolve
Resolve
Cache
但是,如果我执行类似DocketType foo = DocketType.Changeover;
in 的操作Application_Start
,则会创建所有静态字段,然后Cache
具有所有三个值。
创建这些静态字段的正确方法是什么,以便这种情况有效?
c# - 静态类和效率
我想了解静态类的效率,因为我认为我在这方面的基本想法可能存在缺陷。我经常编写如下代码,假设昂贵的反射调用发生的频率较低,因为私有变量将保存访问器的信息。我很确定这在非静态类和实例属性中是一种很好的做法,但是在静态类中使用这个构造有什么好处,或者每次调用公共访问器时都需要实例化私有字段吗?
php - PHP单例类结构 - 我做对了吗?
我有一个非常大的脚本。它有一个数据库类、一个基类、一个用户认证类、一个经销商认证类、paypal ipn 类、一个下载类和一个插件类
Base 类扩展数据库类,如下所示:
我这样称呼我的代码:
我认为结构非常糟糕。这就是为什么我要实现单例方法。我怎样才能做到这一点?
请帮忙。
c# - 类型初始化器抛出异常
这个类正在抛出异常。它没有向我显示确切的行号,但听起来它发生在静态构造函数中:
为什么我不能更改 c'tor 中的这些值?
c# - 如果一个类是对象的蓝图,那么静态类呢?
阅读C# 一步一步,作者提到类只是对象的蓝图,本身是无用的。那么,为什么静态类可以单独工作?
我确实理解静态类不能被实例化并作为一个具有静态成员的唯一实例而存在的概念。但这有点破坏了类作为蓝图的隐喻。静态类如何与这个蓝图想法相关地解释?