------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------
namespace 静态成员静态类
{
class Program
{
static void Main(string[] args)
{
Myclass1 mc = new Myclass1();
mc.M1();
//1、调用静态方法的时候必须通过类名直接调用,不能通过对象来调用
//也就是说使用静态成员不需要实例化对象
//2、静态成员会在整个应用程序退出时,才会释放资源。
//所以可以在整个程序中共享数据
Myclass1.M2();
Console.ReadKey();
}
}
class Myclass1
{
public void M1()
{
Console.WriteLine("M1");
}
public static void M2()
{
Console.WriteLine("静态成员方法");
}
}
}
namespace 静态构造函数
{
public static class Myclass//静态类
{
static Myclass() //静态构造函数
{
Console.WriteLine("静态构造函数");
}
public static int age;
public static string name;
public static void Say()
{
Console.WriteLine("Hi");
}
}
}
namespace 静态构造函数
{
class Program
{
//静态类的构造函数,只会在使用静态类之前,执行并只会执行一次
//静态构造函数不能有访问修饰符,不能有参数
static void Main(string[] args)
{
//Myclass.age = 18;
//Myclass.Say();
T1();
T2();
T3();
Console.WriteLine();
Console.ReadKey();
}
//静态构造函数不能有访问修饰符,不能有参数
static void T1()
{
Myclass.age = 10;
}
static void T2()
{
Myclass.name = "aaa";
}
static void T3()
{
Myclass.Say();
}
}
}
namespace 静态成员
{
class Class1
{
public static string msg; //定义一个静态成员变量 msg
}
}
namespace 静态成员
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Class1.msg = msg.Text.Trim();
this.Text = msg.Text;
}
private void button2_Click(object sender, EventArgs e)
{
Form2 fm = new Form2();
fm.Show();
}
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form3 fm = new Form3();
fm.Show();
}
private void Form2_Load(object sender, EventArgs e)
{
this.Text = Class1.msg;
}
}
上面窗体的演示效果如图:
由于静态成员会在整个应用程序退出时,
才释放资源,所以可以在整个应用程序中共享数据。
学习笔记记录如下:
1、什么时候情况下要将一个类标记为静态类
一般情况是当这个类是一个工具类,里面都是方法,为了让用户调用时更方便,
不需要实例化对象,可以将这个类标记为静态类(static),此时这个类只能包含静态成员
不能包含实例成员。比如:Convert,Math,File,Console等
2、什么情况下需要在一个普通类中编写一个静态成员,而这个类不能标记为static?
当这个类需要被实例化的时候。如果这个类中有一个成员是所有对象都共享的数据,
这时可以将该类中的这个成员标记为静态的,但是这个类还是一个实例类。
1>调用静态方法的时候必须通过类名直接来调用,不能通过对象来调用,
也就是说使用静态成员不需要实例化对象。
2>静态成员会在整个应用程序退出时,
才释放资源,所以可以在整个应用程序中共享数据。
3>静态类不能被实例化,并且只能继承自objec类,不能继承自其他类。也不能被其他类继承
4>由于静态成员会在整个程序退出时,才释放资源,
所以尽量避免写静态字段或静态属性,最好只写静态方法。
5>当给一个普通类添加静态字段后,
系统会默认为该类生成一个静态构造函数【静态构造函数不能有访问修饰符、并且也不能带参数】
6>静态类的构造函数,只会在第一次使用静态类之前,执行,并且只会执行一次。
静态构造函数不能有访问修饰符,不能有参数。
静态类不能实现任何的接口,(因为接口中的成员都是实例成员)
------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------