C#中关于静态与非静态要领的区分引见【C#.Net教程】,csharp,.net,区别
作者:搜教程发布时间:2019-11-27分类:.Net教程浏览:31评论:0
静态要领和非静态要领的区分:
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网别的相干文章!
相关推荐
- h5页面和普通页面的区别是什么?_html5教程,h5页面,普通页面,区别
- MySQL中普通索引和唯一索引的区别详解_MySQL教程,mysql,普通索引,唯一索引,区别
- JDK动态代理和CGLIB区别_JAVA教程,JDK,CGLIB,区别
- interface和abstract class的区别_JAVA教程,interface,abstract class,区别
- int和Integer的区别_JAVA教程,int,Integer,区别
- ResultMap和ResultType的区别_JAVA教程,ResultMap,ResultType,区别
- java中的设计模式与框架有什么区别_JAVA教程,java,设计模式,框架,区别
- Java引用与C指针的区别是什么_JAVA教程,Java,引用,C,指针,区别
- 实例详解php中empty、isset、isnull三者之间的区别_php教程,php,empty,isset,isnull,区别
- java中的援用与c++中的指针的区分【JAVA教程】,java,引用,c++,指针,区别
你 发表评论:
欢迎- .Net教程排行
-
- 1案例分享c++ map的运用和 查找机能测试【C#.Net教程】,性能,map,c++
- 2细致引见C# string花样的日期时候字符串转为DateTime范例的要领【C#.Net教程】,C#,string,DateTime
- 3详解ASP.NET中衔接数据库设置要领【C#.Net教程】,ASP.NET,数据库,配置
- 4C# DataSet机能最好实践【C#.Net教程】,C#,DataSet
- 5c#怎样运用?c#的基础语法【C#.Net教程】,c#,关键字
- 6C#_挪用封装的一个类完成导出Excel表格的功用【C#.Net教程】,C# Excel表格
- 7.net和c#有什么区别【C#.Net教程】,.net,c#
- 8asp .net 面试题及答案分享【C#.Net教程】,.net,自己,整理,问题,面试
- 9让WebAPI 返回JSON花样的数据实例教程【C#.Net教程】,javascript,WebAPI,JSON,api,web,搭建,返回
- 最新文章
- 广而告之