Tag: 静态变量

所有C#generics实例都是常见的静态成员变量吗?

在C#中我有一个generics类: public class MyGeneric where ParameterClass: MyGenericParameterClass, new() { public static int Variable; } 现在在C ++中如果我实例化一个带有不同参数的模板化类,每个完整的类都会得到它自己的Variable ,所以我就是说不出来 MyGeneric.Variable = 1; // invalid in C++ 在C ++中,但似乎我可以在C#中这样做。 我想澄清一下…… 如果我有一个带有静态成员变量的generics,那个变量是否在所有generics实例之间共享?

是引用该库的所有进程共享的库(DLL)中的静态变量吗?

我知道Web应用程序中使用的静态变量是为Web应用程序中的所有用户共享的。 如果我有一个使用某个静态私有变量的库(DLL),那么使用该库的所有应用程序是否共享该变量的值? 例如,假设我的DLL中有以下代码: private static bool isConnected = false; public static void Connect() { // TODO: Connect. isConnected = true; } public static void Disconnect() { // TODO: Disconnect. isConnected = false; } 然后在应用程序A中,我调用myDLL.Connect() ,它将isConnected的值isConnected为True 。 然后我有一些应用程序B执行相同的操作。 如果应用程序A稍后调用myDLL.Disconnect() ,则应用程序B是否将isConnected视为False因为这两个应用程序共享具有静态变量的同一DLL文件? 在这种情况下,DLL文件在同一文件路径中实际上是相同的文件。 (我之前在这里问了一个关于Web应用程序的类似问题。它没有关系。)

可以使用静态变量来缓存ASP.net中的信息吗?

目前我正在使用ASP.net上的C#3.5开发项目管理应用程序。 为了减少对数据库的命中,我使用静态变量缓存了大量信息。 例如,用户列表在静态类中保存在内存中。 该类在启动时从数据库中读取所有信息,并在更改时更新数据库,但它永远不需要从数据库中读取。 该类在写入数据库的同时对其他Web服务器(如果存在)执行更新信息。 pinging机制是一个Windows服务,缓存对象使用随机可用端口进行注册。 它也用于其他事情。 数据量并不是那么好。 目前我正在使用它来缓存用户(密码哈希,权限,名称,电子邮件等)。它只是保存了一堆对数据库的调用。 我想知道这个方法是否有任何陷阱和/或是否有更好的方法来缓存数据?