Jer*_*y H 40 c# static-classes
在C#中有什么区别:
public static class ClassName {}
Run Code Online (Sandbox Code Playgroud)
和:
public class ClassName {}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 67
首先,对答案的评论询问"静态"是什么意思.在C#术语中,"静态"表示"与类型本身有关,而不是类型的实例".您可以使用类型名称而不是引用或值来访问静态成员(来自其他类型).例如:
// Static method, so called using type name
Guid someGuid = Guid.NewGuid();
// Instance method, called on a value
string asString = someGuid.ToString();
Run Code Online (Sandbox Code Playgroud)
现在,静态类......
静态类通常用作"实用程序"类.可能是典型的例子System.Math.创建一个数学实例是没有意义的 - 它只是"是".一些规则("可以"和"不能"):
object.您不能指定不同的基类型,也不能使静态类实现接口.abstract不能自己添加修饰符.sealed不能自己添加修饰符.lms*_*asu 40
静态类无法实例化,并且只能包含静态成员.因此,对静态类的调用如下:MyStaticClass.MyMethod(...)或MyStaticClass.MyConstant.
非静态类可以实例化,并且可以包含非静态成员(实例构造函数,析构函数,索引器).非静态类的非静态成员只能通过对象调用:
MyNonStaticClass x = new MyNonStaticClass(...);
x.MyNonStaticMethod(...);
Run Code Online (Sandbox Code Playgroud)
public static class ClassName {}
Run Code Online (Sandbox Code Playgroud)
静态类就像一个全局变量:您可以在代码中的任何位置使用它而无需实例化它们.例如:ClassName.在点运算符之后,您可以使用它的任何属性或功能.
public class ClassName {}
Run Code Online (Sandbox Code Playgroud)
但是如果你有非静态类,那么你需要创建这个类的实例.例如:
ClassName classNameObject = new ClassName();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28415 次 |
| 最近记录: |