C#静态与非静态 类,成员、结构

来源:互联网 发布:nba2k18ios捏脸数据 编辑:程序博客网 时间:2024/05/29 21:29

1、静态成员需要类名去调用

2、非静态成员需要实例化去调用

3、静态方法中,只可以访问静态成员。静态类中也只能有静态成员。

4、实例中既可以访问静态成员也可以访问非静态成员;

5、不能在静态类中声明实例成员;

6、可以在实例成员中声明静态成员;

7、静态类中的构造函数:只初始化一次,但是静态类的构造函数前面也要加static


结构与类的区别:

结构中也可以有字段、属性

结构中可以有静态方法和非静态方法;

结构与类的构造函数:

1、结构中构造函数 必须只能跟字段赋值,但是不能给属性赋值;必须跟所有的字段赋值,不能选择性的给字段赋值。

2、用new声明结构是,只做了调用构造函数;

3、结构中的构造函数:定义一个结构函数不会把原来的覆盖掉。

4、类和结构都有一个默认的无参数的构造函数;

如果只是单纯的存储数据的话,使用结构节省空间,因为数据存储在栈中,而非堆中。

如果想使用面向对象的思想开发程序,推荐使用类。因为结构不具备面向对象的特征。

竞购

static   构造函数名  {  .....   }




namespace SumOfList{    class Program    {        static void Main(string[] args)        {             //  StaClass.add(); //静态类中不能调用非静态类            // 静态类中的方法直接通过类名调用,这里都在一个项目中,省略            StaClass.addsta();  // 第一次调用静态方法,调用之间调用构造函数            StaClass.gsta();     // 再次调用静态方法,不在调用构造函数,只调用一次            Console.ReadKey();        }    }    public static class StaClass     {          //写一个构造函数(静态类中的方法只能是静态的)        static StaClass()       {            Console.WriteLine ("这时静态类中的静态构造函数,但是只能调用一次,调用之前初始化");        }        /*        public void add()   // 这种声明是错误的,不能在静态来中声明实例成员        {            Console.WriteLine("这个是静态类中的非静态方法");        }*/        public static void addsta()        {            Console.WriteLine("这个是静态类中的静态方法");        }        public static void gsta()        {            Console.WriteLine("这是静态类中的另一个静态方法");        }  }}



阅读全文
0 0