1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace _16静态成员静态类
7 {
8 class Program
9 {
10 static void Main(string[] args)
11 {
12
13
14 //MyClass mc = new MyClass();
15 //mc.M1();
16
17 ////1>调用静态方法的时候必须通过类名直接来调用,不能通过对象来调用,
18 ////也就是说使用静态成员不需要实例化对象。
19 ////2>静态成员会在整个应用程序退出时,才释放资源,所以可以在整个应用程序中共享数据。
20 //3>静态类不能被实例化,不能被继承。
21
22 //4>由于静态成员会在整个程序退出时,才释放资源,所以尽量避免写静态字段或静态属性,最好只写静态方法。
23
24 //5>当给一个普通类添加静态字段后,系统会默认为该类生成一个静态构造函数【静态构造函数不能有访问修饰符、并且也不能带参数】
25
26 //6>//静态类的构造函数,只会在第一次使用静态类之前,执行,并且只会执行一次。
27 //静态构造函数不能有访问修饰符,不能有参数。
28
29
30 //MyClass.M2();
31 //Console.ReadKey();
32
33
34
35 //1.什么情况下要将一个类标记为静态类
36 //- 一般情况是,当这个类是一个工具类,里面都是方法。为了让用户调用的时候方便,不需要实例化对象,这时可以将该类标记为static类,此时该类中只能包含静态成员,不能包含实例成员。比如:Convert、Math、File、Console....
37
38 //2.什么情况下需要在一个普通类中编写一个静态成员,而这个类不能标记为static?
39 //- 当这个类需要被实例化的时候。如果这个类中有一个成员是所有对象都共享的数据,这时可以将该类中的这个成员标记为静态的,但是这个类还是一个实例类。
40 //Console.WriteLine();
41 // Math.
42 }
43 }
44
45 class MyClass
46 {
47 public void M1()
48 {
49 Console.WriteLine("M1");
50 }
51
52 public static void M2()
53 {
54 Console.WriteLine("普通类中的一个静态方法..M2");
55 }
56 }
57 }