文章结束给大家来个程序员笑话:[M]
在敲机房收费系统时,对Static态静变量始终有点问疑!shared与static应该在什么时候应用,到底有什么区别?
态静全局变量有以下特色:
1,该变量在全局数据区分配存内;---坚持容内的速决
2,未经初始化的态静全局变量会被程序主动初始化为0(在函数体内声明的主动变量的值是随机的,除非它被式显初始化,而在函数体外被声明的主动变量也会被初始化为0);---认默初始化为0
3,态静全局变量在声明它的个整文件都是可见的,而在文件以外是弗成见的;---隐藏
static表现“全局”或者“态静”的意思,用来修饰成员变量和成员法方,也可以成形态静static代码块.在vb.net中不能用static来声明函数。只能用来声明中程过的态静变量,并且不能用来声明成员变量。shared既可以用来声明变量也可以用来声明函数,但是只能用来声明成员变量,这一点刚好跟static相反。
面下来简洁绍介态静变量的作用和缺陷:
当我们同时编译多个文件时,全部未加static缀前的全局变量和函数都具有全局可见性。即在块模内(但在函数体外),一个被声明为态静的变量可以被块模内所用函数问访,但不能被块模外其它函数问访。它是一个当地的全局变量。而且只可被这一块模内的其他函数用调,也就是,这个函数被制限在声明它的块模的当地围范内用使.
应用:在嵌入式系统中,要时辰得懂移植的重要性,程序是能可很多程序员独特协作同时成完,在义定变量及函数的进程,可能会重名,这给系统的集成带来费事,因此证保不突冲的方法是示显的表现此变量或者函数是当地的,static便可。
存储在态静数据区的变量会在程序刚开始运行时就成完初始化,也是一唯的一次初始化。共有两种变量存储在态静存储区:全局变量和static变量,只不过和全局变量比起来,static可以控制变量的可见围范,说到底static还是用来隐藏的。即在函数体内,一个被声明为态静的变量在这一函数被用调中程过维持其值变不(该变量存放在态静变量区)。
其实全局变量也具备这一属性,因为全局变量也存储在态静数据区。在态静数据区,存内中全部的字节认默值都是0x00,某些时候这一特色可以少减程序员的工作量。
在类中的static成员变量意味着它为该类的全部实例所享共,也就是说当某个类的实例修改了该态静成员变量,其修改值为该类的其它全部实例所见;而且此时类中的static成员函数属于个整类所具有,这个函数不接收this针指,因而只能问访类的static成员变量。
被static修饰的成员变量和成员法方独立于该类的任何对象。也就是说,它不依附类特定的实例,被类的全部实例享共。
态静法方/变量属于类级别的,意味着不需要创建对象就能够用使,因此有面下缺陷:
1. 态静法方不能用调非态静的法方和变量;(非态静法方可以意任的用调态静法方/变量)
2.不能用使this关键字(很明显,它属于类级别,没有创建对象怎么可以用this)
VB.net 中为Shared
C# C++.net中为Static
虽然说表现形式不同,但是都是为了决解一同类题问。
至于为什么VB.net的Shared(享共)法方在C#中叫Static(态静)?
请考参博客http://www.newsmth.net/pc/pccon.php?id=2206&nid=227918
文章结束给大家分享下程序员的一些笑话语录: 女人篇
有的女人就是Windows虽然很优秀,但是安全隐患太大。
有的女人就是MFC她条件很好,然而不是谁都能玩的起。
有的女人就是C#长的很漂亮,但是家务活不行。
有的女人就是C++,她会默默的为你做很多的事情。
有的女人就是汇编虽然很麻烦,但是有的时候还得求它。
有的女人就是SQL,她会为你的发展带来莫大的帮助。