zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    opencv视屏流嵌入wxpython框架
    Linux下makefile学习
    关于pyinstall打包时的依赖问题
    python文件结构与import用法
    python3+dlib人脸识别及情绪分析
    慕课学习--DNS的作用
    力扣leetcode11. 盛最多水的容器
    力扣leetcode5.最长回文子串
    力扣leetcode1190. 反转每对括号间的子串
    基于Ubuntu1604+ROS-kinetic+roscpp的激光雷达定位算法从零开始移植
  • 原文地址:https://www.cnblogs.com/-qq593790351/p/3196526.html
Copyright © 2011-2022 走看看