旗下导航:搜·么
当前位置:网站首页 > .Net教程 > 正文

C#中关于静态与非静态要领的区分引见【C#.Net教程】,csharp,.net,区别

作者:搜教程发布时间:2019-11-27分类:.Net教程浏览:63评论:0


导读:静态要领和非静态要领的区分:  1.静态要领不须要类实例化就能够挪用,反之非静态要领须要实例化后才挪用;  2.静态要领只能接见静态成员和要领,非静态要领都能够接见; ...

静态要领和非静态要领的区分:

  1.静态要领不须要类实例化就能够挪用,反之非静态要领须要实例化后才挪用;

  2.静态要领只能接见静态成员和要领,非静态要领都能够接见;

  3.静态要领不能标记为override,致使派生类不能重写,然则能够接见;

  4.静态成员是在第一次运用时举行初始化。非静态的成员是在建立对象的时刻,从内存分派上来讲静态是一连的,非静态在内存的存储上是离散的,因而静态要领和非静态要领,在挪用速率上,静态要领速率一定会快点,由于非静态要领须要实例化,分派内存,但静态要领不必,然则这类速率上差别能够忽略不计

什么时候用静态要领,什么时候用实例要领:

  1.一个要领和他地点类的实例对象无关,不依赖new出来的实例,那末它就应该是静态的

  2.不须要面向对象的理念的时刻用静态;比方动物-> RUN ,由于你可能会扩展出猫 run、狗 run,这时刻就须要用非静态的要领

关于线程平安:

  静态要领只要一个实例,当有静态变量的时刻,关于高并发的时刻,并发的一切执行都走谁人要领,静态变量的值就会发作转变,致使出现问题;

  固然并发不平安跟要领自身没紧要,跟同享的谁人资本有关联比方某个变量,每一个线程都对其举行操纵,都能转变其值,多线程(并发实在就是多线程),操纵它,其值杂沓,就有问题了

为何要用非静态要领

  这是本人写的一个要领,当初直接写成static要领,没有他人的缘由,是由于不想实例化能够少些一行代码,并没有想过静态和非静态的区分= =!~~;固然写成非static的要领也是能够的;

  缘由

  1.由于要领须要反复的挪用,每次都去new一次会形成内存的开支,运用静态的要领就会一直在内存中,不须要从新new一块空间初始化数据;

  2.不须要去做OO;

  3.要领不依赖new出来的内容;

  比较典范的static要领,DBHelp内里基本上都是static要领

以上就是C#中关于静态与非静态要领的区分引见的细致内容,更多请关注ki4网别的相干文章!

标签:csharp.net区别


欢迎 发表评论: