Che*_*eso 24 .net c# class-design
在C#中,标记类静态的目的是什么?
如果我有一个只有静态方法的类,我可以将该类标记为静态.为什么我要将类标记为静态?如果所有方法都是静态的,并且我打算永远不会添加非静态方法,我是否不想将类标记为静态?
我环顾四周,看到了一些类似的问题,但没有一个像这样.
Jar*_*Par 28
将类标记为static是一种声明性语句,您只希望此类型具有static和const成员.这是由编译器强制执行的,可以防止您意外地向该类型添加实例方法.
其他优点
将课程标记为static两个重要的事情.
编译器验证您只将static成员放在一个类中.
向您的代码的读者明确声明此类只是static成员的容器.
该功能是为了响应NDP v1.0中的一个错误而发明的,其中一个不可调用的非static成员被包含在System.Environment该类中.
它是一种特定于C#语言的约定,CLR没有静态类的概念.它确保您不会在类中意外添加实例成员,无法继承类和客户端代码,不会意外地创建类的实例.该类的基础TypeAttributes是Abstract和Sealed.Abstract确保新运算符无法工作,Sealed确保您不能从类继承.
同样按照惯例,扩展方法必须是静态类的静态成员.VB.NET的做法不同,它需要[Extension]属性.
在代码中使用静态类不是必需的,但它很有用.他们的合同非常具有描述性,它使您的代码更容易理解.但要注意不要将它们用作编写程序代码而不是OOP代码的工具.
| 归档时间: |
|
| 查看次数: |
1815 次 |
| 最近记录: |