Tag: 静态

ASP.NET中的请求或服务器是静态类实例吗?

在ASP.NET网站上,每个Web请求都是唯一的静态类,还是在GC决定处理它们时,在需要时进行实例化,并进行GC处理? 我问的原因是因为我之前在C#中编写了一些静态类,行为与我预期的不同。 我会期望静态类对每个请求是唯一的,但似乎并不是这样的情况。 如果他们不是每个请求都是唯一的,有没有办法让他们成为? 更新: driis给我的答案正是我所需要的。 我已经使用了一个单独的类,但是它使用了一个静态实例,因此即使用户不同,在这个请求之间也是共享的,在这种情况下是不好的。 使用HttpContext.Current.Items完美地解决了我的问题。 对于将来会遇到这个问题的人来说,这里是我的实现,简化和缩短,以便于理解模式: using System.Collections; using System.Web; public class GloballyAccessibleClass { private GloballyAccessibleClass() { } public static GloballyAccessibleClass Instance { get { IDictionary items = HttpContext.Current.Items; if(!items.Contains("TheInstance")) { items["TheInstance"] = new GloballyAccessibleClass(); } return items["TheInstance"] as GloballyAccessibleClass; } } }

为什么我们不能在(非静态)内部类中使用静态方法?

为什么我们不能在非静态的内部类中使用静态方法? 如果我让内部类静态它的作品。 为什么?

为什么我不能inheritance静态类?

我有几个不需要任何状态的类。 从组织的angular度来看,我想把它们分层次。 但似乎我不能声明静态类的inheritance。 类似的东西: public static class Base { } public static class Inherited : Base { } 不pipe用。 为什么这个语言的devise者closures了这种可能性呢?

什么时候静态C ++类成员初始化?

似乎没有简单的答案,但是有什么假设可以安全地做出什么时候可以访问静态类字段? 编辑:唯一安全的假设似乎是所有静态在程序开始前(调用main )初始化。 所以,只要我不从其他静态初始化代码引用静态,我应该没有什么可担心的?

为什么PHP 5.2+不允许抽象的静态类方法?

在PHP 5.2中启用严格的警告之后,我看到一个严格标准警告来自一个原本没有严格警告的编写的警告: 严格的标准 : 静态函数 Program :: getSelectSQL()在Program.class.inc中不应该是抽象的 有问题的函数属于一个抽象的父类程序,并被声明为抽象静态的,因为它应该在其子类(如TVProgram)中实现。 我确实在这里find了这个变化的参考: 丢弃抽象的静态类function。 由于疏忽,PHP 5.0.x和5.1.x允许在类中使用抽象静态函数。 从PHP 5.2.x开始,只有接口可以拥有它们。 我的问题是:有人可以清楚地解释为什么在PHP中不应该有一个抽象的静态函数?

Java中有用的环境设置列表

我一直想知道很长一段时间,如果有存储JVM的运行时信息的(可能是静态的)方法/字段的综合列表。 一个不完整的例子列表: System.out / System.in System.currentTimeMillis的() System.getProperty() System.getConsole() Runtime.freeMemory() 等等 有没有人有链接或什么的? 编辑:我没有这么愚蠢,没有检查系统和运行时的文档:P我只是想知道是否有其他类在类似的方法来确定您正在运行的机器的状态存储。

如何处理静态链接库之间的符号冲突?

编写一个库时最重要的规则和最佳实践之一是将库的所有符号放入一个特定于库的名称空间中。 由于namespace关键字,C ++使这个变得简单。 在C中,通常的做法是在标识符的前面添加一些库特定的前缀。 C标准的规则对这些进行了一些约束(为了安全编译):AC编译器可能只查看标识符的前8个字符,所以foobar2k_eggs和foobar2k_spam可以被有效地解释为相同的标识符 – 但是每个现代编译器都允许任意很长的标识符,所以在我们这个时代(21世纪),我们不应该为此烦恼。 但是如果你正面临一些你不能更改符号名称/标识符的库呢? 也许你只有一个静态的二进制和头或不想,或不允许调整和重新编译自己。

什么时候静态variables被初始化?

我想知道什么时候静态variables被初始化为默认值。 是否正确的是,当一个类被加载,静态variables被创build(分配),然后执行声明中的静态初始化和初始化? 在什么时候给出默认值? 这导致了前瞻性的问题。 另外,如果你能解释这个问题,请参考问题为什么静态字段没有及时初始化? 特别是Kevin Brock在同一个网站上的回答。 我不明白第三点。

什么是“静态”function?

问题是关于纯C函数,而不是C ++ static方法,如评论中所澄清的。 好吧,我明白什么是staticvariables,但什么是static函数? 为什么如果我声明一个函数,让我们说void print_matrix ,在我们说ac (没有ah ),并包括"ac" – 我得到"print_matrix@@….) already defined in a.obj" ,但是如果我声明它为static void print_matrix那么它编译? 更新只是为了清除事情 – 我知道包括.c是不好的,正如你们许多人指出的那样。 我只是暂时清除main.c空间,直到我更好地了解如何将所有这些函数组合到适当的.h和.c文件中。 只是一个临时的快速解决scheme。

私人最终静态属性vs私人最终属性

在Java中,有什么区别: private final static int NUMBER = 10; 和 private final int NUMBER = 10; 两者都是private和final ,区别在于static属性。 什么更好? 为什么?