1、在非静态类中,既可以有实例成员,也可以有静态成员。
    2、在调用实例成员的时候,需要使用对象名.实例成员;
    在调用静态成员的时候,需要使用类名.静态成员;
    总结:静态成员必须使用类名去调用,而实例成员使用对象名调用。
    静态函数中只能访问静态成员,不允许访问实例成员。
    实例函数中既可以使用静态成员,也可以使用实例成员。
    静态类中只允许有静态成员,不允许出现实例成员。

    使用:
    ① 如果你想要你的类当做一个“工具类”去使用,这个时候可以考虑将类写成静态的类。
    ② 静态类在整个项目中资源共享。
    (静态存储区域)只有在程序全部结束后,静态类才会释放资源。
    释放资源。GC Garbage Collection 垃圾回收

    1. using System;
    2. using System.Collections.Generic;
    3. using System.Text;
    4. namespace _049_面对对象初级_4_静态与非静态
    5. {
    6. public class Class1
    7. {
    8. private static string _name;
    9. private int _age;
    10. public static string Name { get => _name; set => _name = value; }
    11. public int Age { get => _age; set => _age = value; }
    12. public void M1()
    13. {
    14. Console.WriteLine("我是非静态的方法");
    15. }
    16. public static void M2()
    17. {
    18. Console.WriteLine("我是静态的方法");
    19. }
    20. }
    21. }
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Text;
    4. namespace _049_面对对象初级_4_静态与非静态
    5. {
    6. public static class Class2
    7. {
    8. private static string _name;
    9. public static string Name { get => _name; set => _name = value; }
    10. // private int _num; 报错,静态类中不允许出现实例成员
    11. public static void M1()
    12. {
    13. Console.WriteLine("静态方法");
    14. }
    15. }
    16. }
    1. using System;
    2. namespace _049_面对对象初级_4_静态与非静态
    3. {
    4. class Program
    5. {
    6. static void Main(string[] args)
    7. {
    8. Class1 c1 = new Class1();
    9. c1.M1();//实例方法
    10. Class1.M2();//静态方法
    11. //Class2 c2 = new Class2();//无法创建静态类的实例
    12. }
    13. }
    14. }