C#中的静态成员和类

 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 }
View Code
原文地址:https://www.cnblogs.com/-qq593790351/p/3196526.html