【发布时间】:2011-05-01 08:50:33
【问题描述】:
声明静态类有什么好处?
public static class MyStaticClass
{
}
除了“不能实例化”还有别的吗?
为什么你还想要一个静态类,为什么类应该是静态的?
“任何类都应该被声明为静态的,除非它被实例化”是一个好的经验法则吗?
【问题讨论】:
声明静态类有什么好处?
public static class MyStaticClass
{
}
除了“不能实例化”还有别的吗?
为什么你还想要一个静态类,为什么类应该是静态的?
“任何类都应该被声明为静态的,除非它被实例化”是一个好的经验法则吗?
【问题讨论】:
您需要一个静态类来创建扩展方法。
【讨论】:
静态类可用作实用函数和常量的容器。如果该类不代表一个对象并且仅用于此目的,那么将其声明为静态是有意义的。
【讨论】:
仅声明静态方法(如 System.IO.File)的实用程序类不会被实例化,因此它通常是静态的。
你说得对,我觉得它很有用。单例是不同的,因为它是私有实例化的。
【讨论】:
静态类和类成员是 用于创建数据和函数 无需创建即可访问 类的实例。静态类 成员可用于分隔数据 和独立的行为 任何对象身份:数据和 功能不会改变,无论 对象会发生什么。静止的 没有类时可以使用 类中的数据或行为 取决于对象身份。
直接取自 MSDN。它比我解释得更好。这里的关键事实是对象会在整个生命周期中持续存在。
扩展方法也必须写在静态类中。我倾向于将这些用于字符串扩展或集合扩展。
【讨论】:
如果一个类有静态修饰符,那么:
第一点是最重要的,IMO。您正在向编译器和其他开发人员传达意图。
【讨论】:
.NET 项目中,是否可以创建一个静态类来在页面之间传递变量值,否则这里会涉及风险。我听说我们应该避免使用全局变量和静态类,除非上下文非常清楚。在我的例子中,我使用一个静态类来分配一个来自 page1 的变量的值(例如,myStaticClass.City = "London"),然后从 page2 作为 myStaticClass.City 访问它。在这样一个简单的情况下(只有几个类成员)是否可以仅将静态类用于在同一应用程序的页面之间传递变量值?
WPF app。但事实上,忘记对我有好处,因为您的回复甚至涵盖了网络应用程序(谢谢)。我的印象是使用静态类不一定是不好的做法,而是should be used wisely。