C# asp.net以三种方式在应用程序范围中声明全局变量/类。哪一个最好?

C# asp.net以三种方式在应用程序范围中声明全局变量/类。哪一个最好?,c#,asp.net,class,static,global-variables,C#,Asp.net,Class,Static,Global Variables,我正在寻找在asp.net应用程序范围内使用静态类的三种方法之间的差异。 所有这些都指向同一个类吗? 在global.asax或static类中以声明方式定义的>对象

我正在寻找在asp.net应用程序范围内使用静态类的三种方法之间的差异。 所有这些都指向同一个类吗? 在global.asax或static类中以声明方式定义的>对象<哪个更可取

示例:

<object runat="server" scope="application" class="classname" ID="objID"></object>
VS


我假设您的编辑意味着:

在global.asax.cs中:

Application["a"] = new classname();
在classname.cs中

public static class classname {}
在这种情况下,它们基本上是相同的,唯一的例外是
(classname)应用程序[“a”]
将引用classname类的实例,而在第二个示例中,对
classname.methodnamegosher()
的任何调用都将调用classname类的静态方法


我会选择静态类的静态方法,而不是存储在应用程序中的实例的方法,尽管我会非常仔细地考虑classname中的方法的作用,因为它们可以同时被调用,因为很多人可以一次访问站点。

你能更清楚地理解你的意思吗?可能是问题中的一些代码片段,因为我无法理解标题的开头和结尾是的,标题令人费解……是的,应用程序[“a”]最不受欢迎。在global.asax中使用如何。这与静态类有何不同?我认为它与使用应用程序[“a”]在功能上是相同的,所以我不赞成它-它不清楚,也不是一种特别有名的方法据我所知,使用应用程序[“a”]是最不有利的,因为您访问的是一个大哈希表,而不是直接的静态对象。这是asp时代的遗留问题。所以问题仍然存在,在global.asax或static类中。哪一个是最好的,为什么?@newbe-As-markup在global.asax中的功能等同于Application[“a”]=new classname(),正如我在第一条评论中所说,我不赞成它。因此,我选择静态类。这是个人喜好。这似乎也更正确。
Application["a"] = new classname();
public static class classname {}