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

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("这是静态类中的另一个静态方法");
        }
  }
}



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一枚努力的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值