仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 990|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计Visual C# 2005疾速进门之使用感化域

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:41:37 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
竟发现没有太大的帮助。总觉得要用起来,感觉到不了位。因为公司机器的原因,一直没有安装vs.net(也从来没有用过)。以前做asp的时候一直用DW(感觉其代码联想功能不错),可现在到了asp.net却不习惯了。visual|疾速进门  后面已展现了一些在办法外部创立变量的例子。变量从界说了它的语句入手下手存在,统一个办法内的后续语句可使用该变量。换言之,变量只能在创立了以后才干利用。办法实行终了后,变量也会完全消散。

  假设一个变量能在程序中的一个特定地位利用,就申明该变量具有谁人地位的感化域。也就是说,一个变量的感化域(scope)是指可以利用该变量的程序地区。感化域既感化于办法,也感化于变量。一个标识符(不论它代表变量仍是代表办法)的感化域是从声明显该标识符的谁人地位入手下手的。

  界说部分感化域

  界定办法主体的肇端与停止年夜括号创建了一个感化域。办法主体中声明的任何变量都具有谁人办法的感化域;一旦办法停止,它们也会消散,并且只能由谁人办法外部实行的代码来会见。这些变量称为部分变量(localvariable),由于它们范围于声明它们的谁人办法,不克不及在其他任何办法的感化域中利用。换言之,你不克不及利用部分变量在分歧的办法之间共享信息。比方:

classExample
{
voidfirstMethod()
{
intmyVar;
...
}
voidanotherMethod()
{
myVar=42;//毛病C变量越界
...
}
}
  上述代码将编译失利,由于anotherMethod办法试图利用一个越界的myVar变量。该变量只能由firstMethod办法中的语句利用。

  界说类感化域

  界定类主体的肇端和停止年夜括号也创建了一个感化域。在类主体中(但不在一个办法中)声明的任何变量都具有谁人类的感化域。在C#术语中,开辟者利用字段(field)一词来形貌由一个类界说的变量。和部分变量分歧,你可使用字段在分歧的办法之间共享信息。比方:

classExample
{
voidfirstMethod()
{
myField=42;//ok
...
}
voidanotherMethod()
{
myField=42;//ok
...
}
intmyField=0;
}
  变量myField是在类的外部和firstMethod和anotherMethod办法的内部界说的。以是,myField具有类的感化域,可由类中的一切办法利用。

  这个例子中还必要注重另外一点。在一个办法中,必需在利用一个变量前声明它。但字段稍有分歧,一个办法能在界说一个字段的语句之前利用谁人字段――在这类情形下,编译器将为你办理统统!

  重载办法

  假如两个标识符同名,并且在统一个感化域中声明,就能够说它们被重载(overloaded)。一般,重载的标识符属于一个程序bug,会在编译时被捕获到并报错。比方,假定你在统一个办法中声了然两个同名的部分变量,就会取得一个编译时毛病。相似地,假设在统一个类中声了然同名的两个字段,大概在统一个类中声了然两个完整一样的办法,就会取得一个编译时毛病。这个现实外表上仿佛何足道哉,由于统统城市被呈报为编译时毛病。但是,你的确能经由过程一种体例来重载标识符,并且这类重载不但是有效的,并且是主要的。

  以Console类中的WriteLine办法为例,后面已利用该办法向屏幕输入一个字符串。但是,在“代码和文本编纂器”窗口中输出WriteLine时,会主动弹出一个“智能感知”列表,个中列出了19个分歧的版本!WriteLine办法的每一个版本都猎取一套分歧的参数。一个完成不猎取任何参数,只是输入一个空行;另外一个完成则猎取一个bool参数,并输入它的值的字符串情势(true或false);另有一个完成猎取一个小数值,并以字符串的情势输入它;等。程序编译时,编译器会反省所传送的实参的范例,然后挪用参数集与之婚配的一个办法版本。上面是一个例子:

staticvoidMain()
{
Console.WriteLine("Theansweris");
Console.WriteLine(42);
}
  假如必要针对分歧的数据范例实行不异的操纵,重载就是一项非常有效的手艺。假如分歧的完成有分歧的参数集,就能够思索重载一个办法。换言之,每一个版本都具有不异的办法名,但具有分歧的参数数目大概分歧的参数范例。使用这个功效,在挪用一个办法时,能够供应一个以逗号分开的实参列表,而编译器将依据这些实参的数目和范例,选择个中的一个婚配的重载版本。但要注重,固然能够重载一个办法的参数,但不克不及重载办法的前往范例。也就是说,不克不及声明只是前往范例有区分的两个同名办法(编译器固然对照伶俐,但还不至于伶俐到那种水平)。我感觉可以顶到50楼,出乎意料的是大家居然纷纷写出自己的博文,还被编辑做成了专题,置于首页头条。
小魔女 该用户已被删除
沙发
 楼主| 发表于 2015-3-26 21:09:17 | 显示全部楼层
在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-23 02:55

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表