在.NET项目中,创建一个静态类来在页面之间传递变量值是否可以,或者这里存在风险。我听说我们应该避免使用全局变量和静态类,除非上下文非常清晰。在我的情况下,我正在使用一个静态类来仅仅分配一个变量的值从页面1(比如,myStaticClass.City =“伦敦”),然后在页面2中访问它作为myStaticClass.City。在这种简单的情况下(只有几个类成员),是否可以使用静态类来仅仅传递同一应用程序的页面之间的变量值? - nam
1@nam:是哪种应用程序的页面?对于 Web 应用程序来说,这绝对是一个糟糕的想法——它无法处理多个服务器的扩展,并且无法将数据分开存储以供不同用户使用。在桌面应用程序中,我会说这仍然不是一个干净或可测试的设计,但它没有同样类型的问题。 - Jon Skeet
抱歉,我忘了提到“WPF应用程序”。但是遗忘实际上对我来说很不错,因为您的回复甚至还涵盖了Web应用程序(谢谢)。 我的印象是使用静态类不一定是一个坏习惯,但是应该明智地使用。 - nam
1@nam:在静态类中存储全局可变状态(这是您提出的建议)通常不是一个好主意。全局状态很难理解和测试。只存储不可变状态并包含状态方法的静态类则可以接受。 - Jon Skeet