C#Static修饰符的作⽤
Use the static modifier to declare a static member, which belongs to the type itself rather than to a specific object. The static modifier can be used with classes, fields, methods, properties, operators, events, and constructors, but it cannot be used with indexers, destructors, or types other than classes.
具体为:
1. 类
静态类只⽤于包含静态成员的类型,不能实例化,静态类的特性是防⽌继承,防⽌外部来创建对象。
1.静态类不能有构造函数
static修饰的变量
2.静态类不能有任何实例成员。
3.静态类的成员不能有protected或protected internal访问保护修饰符。
4.静态类不能使⽤abstract或sealed修饰符。
5.静态类不能指定任何接⼝实现。
2. 字段
数据成员包括:静态变量和⾮静态变量两种
静态变量:带有static 修饰符的变量称为静态变量。
⾮静态变量:不带有static修饰符声明的变量称为⾮静态变量,⼜叫实例变量。
类中的成员变量要么是静态,要么是⾮静态的。
静态成员变量是属于类所有的,⾮静态成员则属于类的实例——对象。
静态字段和静态构造⽅法,通常适⽤于于⼀些不会经常变化⽽⼜频繁使⽤的数据,⽐如连接字符串,配置信息等,进⾏⼀次读取,以后就可以⽅便的使⽤了,同时也节约了托管资源,因为对于静态成员,⼀个静态字段只标识⼀个存储位置。
静态类成员的调⽤
类名.成员字段
类名.成员⽅法([参数列表])
⾮静态类成员的调⽤
类名对象名 = new 构造函数名([参数列表])
对象名.成员字段名
对象名.成员⽅法([参数列表])
3. ⽅法
静态⽅法在程序运⾏的过程中内存为其赋予固定的空间。
静态⽅法不属于类的某⼀个具体的实例,⽽是属于类本⾝。
⾮静态⽅法可以访问类中的任何成员,静态⽅法只能访问类中的静态成员。
静态⽅法的格式
类名.静态⽅法
例如,string text3 = Button.ButtonName();
静态⽅法优缺点
优点:该⽅法作⽤于整个程序的运⾏过程,可以直接调⽤,数据全局存在。
缺点:静态⽅法在程序运⾏过程中不会⾃动销毁,占⽤内存空间。
静态⽅法与⾮静态⽅法访问关系总结
静态⽅法静态成员(在程序
启动时最早被赋
值)
⾮静态⽅法
⾮静态成员(在创
建类对象后被赋
值)
静态⽅法Y Y N N
⾮静态⽅法Y Y Y Y
4. 属性
5. 运算符
6. 事件
7. 构造函数
⽤于对静态字段、只读字段等的初始化
添加static关键字,不能添加访问修饰符,因为静态构造函数都是私有的。
类的静态构造函数在给定应⽤程序域中⾄多执⾏⼀次:只有创建类的实例或者引⽤类的任何静态成员才激发静态构造函数.静态构造函数是不可继承的,⽽且不能被直接调⽤。
静态字段和静态构造⽅法,通常适⽤于于⼀些不会经常变化⽽⼜频繁使⽤的数据,⽐如连接字符串,配置信息等,进⾏⼀次读取,以后就可以⽅便的使⽤了,同时也节约了托管资源,因为对于静态成员,
⼀个静态字段只标识⼀个存储位置。
C#的.cs⽂件具有如下结构:
1. 引⽤
2. 命名空间
3. 类
4. ⽅法
using MS.Internal.Mita.Foundation;
using TestCommon.UI.Mita;
//以上为1. 引⽤
namespace EndToEndTest.ControlLibrary //2.命名空间
{
public class Button //3.类
{
private string text;
public void SetText(string value) // 4.⽅法
{
text = value;
}
public Button()
{
}
public string GetText()
{
return text;
}
public static string ButtonName()
{
string test = "test";
return test; // return和声明变量不能写在⼀⾏。这个是⼀个语法要求。
}
}
public class foo
{
public void bar()
{
Button btn = new Button(); //动态⽅法的引⽤每⼀次调⽤都是不同的,⽐如说⼀个button可以多个名字。
btn.SetText("hello");
string text = btn.GetText();
Button btn2 = new Button();
btn.SetText("world");
string text2 = btn2.GetText();
string text3 = Button.ButtonName();//静态⽅法的引⽤可以直接⽤“类.”点出来,如果不是静态类,⽽是动态类的话则不能⽤”.”点出来。    }
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。