|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
竟发现没有太大的帮助。总觉得要用起来,感觉到不了位。因为公司机器的原因,一直没有安装vs.net(也从来没有用过)。以前做asp的时候一直用DW(感觉其代码联想功能不错),可现在到了asp.net却不习惯了。<p>人人关于static关头字应当对照眼生了,可是良多人对static关头字不睬解,这实在就是关于auto的不睬解。static关头字不是auto,变量在程序初始化时被分派,直到程序加入前才被开释。
静态变量
当我们编写一个类时,实在就是在形貌其工具的属性和举动,而并没有发生本色上的工具,只要经由过程new关头字才会发生出工具,这时候体系才会分派内存空间给工具,其办法才能够供内部挪用。
偶然候,我们但愿不管是不是发生了工具或不管发生了几工具的情形下,某些特定的数据在内存空间里只要一份,比方一切的中国人都有国度称号,每个中国人都共享这个国度称号,不用在每个中国人的实例工具中都独自分派一个用于代码国度称号的变量。例子:
<OLclass=dp-xml>protectedvoidPage_Load(objectsender,EventArgse){//间接利用“类名.成员”的格局,不克不及利用“工具名.成员”的格局,这点与JAVA纷歧样,JAVA两种都可使用Response.Write(Chinese.Country);}classChinese{publicstaticstringCountry="中国";publicvoidgetCountry(){//类中的成员办法也能够间接会见静态成员变量HttpContext.Current.Response.Write("你好!"+Country);}}
必要注重的是:不克不及把任何办法体内的变量声明为静态,以下面如许是不可的:
<OLclass=dp-xml>publicvoidgetCountry(){//类中的成员办法也能够间接会见静态成员变量HttpContext.Current.Response.Write("你好!"+Country);staticinti=1;}
静态办法
我们偶然也但愿不用创立工具就能够挪用某个办法,换句话说也就是使该办法不用和工具绑定在一同。要完成如许的效果,只必要在类中界说的办法前加上static关头字就能够了,我们称这类办法为静态成员办法,还能够在类的非静态成员办法中象会见其他静态办法一样往会见这个静态办法,例子:
<OLclass=dp-xml>protectedvoidPage_Load(objectsender,EventArgse){Chinese.getCountry();}classChinese{publicstaticvoidgetCountry(){HttpContext.Current.Response.Write("你好!中国");}}
注重:在静态办法里只能间接挪用同类中其他的静态成员(包含变量和办法),而不克不及间接会见类中的非静态成员。这是由于,关于非静态的办法和变量,必要先创立类的实例工具后才可使用,而静态办法在利用前不必创立任何工具。
const和staticreadonly切实其实很像:经由过程类名而不是工具名举行会见,在程序中只读等等。在多半情形下能够混用。
两者实质的区分在于,const的值是在编译时代断定的,因而只能在声明时经由过程常量表达式指定其值。而staticreadonly是在运转时盘算出其值的,以是还能够经由过程静态机关函数来赋值。
要了解static,就必需要先了解另外一个与之绝对的关头字,良多人大概都还不晓得有这个关头字,那就是auto,实在我们一般声明的不必static润色的变量,都是auto的,由于它是默许的,就象short和long老是默许为int一样;我们一般声明一个变量:
<OLclass=dp-xml>inta;strings;
实在就是:
<OLclass=dp-xml>autointa;autostrings;
而static变量的声明是:
<OLclass=dp-xml>staticinta;staticstrings;
如许仿佛能够更有益于了解auto和static是一对成对的关头字吧,就像private,protected,public一样;
关于static关头字的不睬解,实在就是关于auto的不睬解,由于它是更一样平常的;有的器材你每天在用,但一定就代表你真正懂得它;auto的寄义是由程序主动把持变量的保存周期,一般指的就是变量在进进其感化域的时分被分派,分开其感化域的时分被开释;而static就是不auto,变量在程序初始化时被分派,直到程序加入前才被开释;也就是static是依照程序的性命周期来分派开释变量的,而不是变量本人的性命周期
<p>我觉得很重要,一般所说的不重要应该指的是:你学好一种以后再学另一种就很容易了。(因为这样大家可能有一个错觉就是语言不是很重要,只要随便学一种就可以了,其实不是这样的。 |
|