.
img
注册时间:--
  • 纯文字版本
    开 关闭
  • 消息
  • 收藏
  • 退出
注意:文章中$$符号只有一个,因程序问题提交后变成了两个。

走进asp.ner第二课

在介绍代码分离之前,我想说一下关于内存的问题,内存又分为内存堆区和内存栈区,堆是一个比较直接的概念,而栈里存储的变量,就要通过堆才能读写,也就是说,作用于内存堆区的变量,读写效率会比栈区高。
了解程序的工作机制,才能写出性能好的代码,也许你想对了,变量放在堆区,那不是效率高了很多吗?是的,但是很不幸,我们写程序,多数的数据却是存储于栈中的,上课,我们声明了一个变量a,它的值就是存在栈区,而堆里只是存储了它的内存地址。我说的这些可能比较深奥,没关系,你只要记住,数据存储在堆区效率更高,而存储在栈区更适合面向对象。
还不懂?这是没办法的事情,因为我们还没学到数据类型,只好说这么多了。下面进入我们这课的正题,把以下代码保存为test.aspx文件,关于这个test.aspx,我现在得说两句,如果你没猜错的话,这个.aspx就是asp.net文件的后缀名。
<%@ Page Language=“C#“ CodeFile=“test.aspx.cs“ Inherits=“wap“ ContentType=“text/vnd.wap.wml“%><?xml version=“1.0“ encoding=“utf-8“?>
<!DOCTYPE wml PUBLIC “-//WAPFORUM//DTD WML 1.1//EN“ “http://www.wapforum.org/DTD/wml_1.1.xml“>
<wml>
<head>
<meta http-equiv=“Cache-Control“ content=“max-age=0“/>
</head>
<* title=“代码隐藏分离示例“>
<p>
<%=txt%>
</p>
</*>
</wml>
好,页面内容多了不少,呵呵。这是我使用了wml标记,wml的语法比较严格,请注意不要写错了任何符号,调试的时候,请使用opera流览器,因为ie是不支持wml的。
现在我讲一下,CodeFile=“test.aspx.cs“指明此页的代码隐藏文件为test.aspx.cs,Inherits=“wap“是说要加载test.aspx.cs的类wap,关于这个wap,你可以不用管它,这不是本课的内容。ContentType=“text/vnd.wap.wml“这句是指明此页的MIME类型为wml,默认是text/html。下面就是标准的wml标记,其中有个要输出的变量txt。其它的我不想说了,你还是不会wml的话,我还是那句话,拿钱来!呵呵。
也许你会感到奇怪,我为什么在第2课才讲.aspx后缀,好,现在把上面的代码放在根目录保存好,打开opera,你会发现这样的提示:
文件“/test.aspx.cs”不存在。
不是我的过错,呵呵,好了,这正是本课的议题,代码隐藏分离。在这个页面,我们看不到任何C#的代码,注意:<%=txt%>是asp.net代码,还记得这个语法吗?嗯,下面把以下代码保存为test.aspx.cs文件,注意是.cs
using System;
using System.Web;
using System.Web.UI;
partial class wap:Page
{
protected string txt;
void Page_Load()
{
txt=“这是走进asp.net的第2课“;
}
}
最好,以上的代码你是一个个字母打出来的,初学者不要偷懒。当然,你也可以保存为test.cs,然后把test.aspx文件的CodeFile=“test.aspx.cs“改掉,不过,我希望你加上.aspx,以区分test.aspx两种不同后缀的文件名。
如果要说明白这个代码的意思,恐怕我做不到,你现在需要把它的结构记住,开始的3个using xxx的,你照抄便是,以后我会详细讲的,接下来的第四行,声明了一个类wap,类是个很高深的问题,你现在必须学会区分代码里那个是类,没错,前面不是有个class关键词吗?前面带class就是类了,class是C#里的关键词,它专们用来声明类的。而开始的partial也是关键词,它是类wap的修饰符,说明这个类wap是局部的,它只作用在这个asp.net页面。既然是我们声明的,wap你就可以用其它的名称来取代它,甚至用中文也行。类wap的后面跟着个冒号,最后有个Page,大体意思就是这个类wap是继承自Page类的,继承了它,就可以直接用属于Page类的成员了,这可有点难理解,也许你会问,Page类又是从何而来呢?很好,这个Page正是.net平台里的一个类,它不是属于C#的,而是整个.net支持的语言都可以使用它。也许,你现在还是不能理解,不过我想,你不是似乎对.net平台又有了进一步的认识了吗?如果是,那么恭喜你,我说过,学习,本来就是一个领悟的过程。
下面看
protected string txt;
这一句,你可能知道它是声明一个字符串变量txt,是的,在这里,我们把它的修饰符改为protected,是说这个变量是受保护的,只能在本页面调用,这对代码的安全很重要,这里我说的安全,并不是说之前用public来修饰容易糟到黑客攻击,这里说的安全是说,让它只能在本页使用,不是更好吗?这样做,我们就可以不用理会别的地方会一不小心使用了它,确保我们得到的变量值总是正确的。
如果,把protected修饰符去掉的话,就会出错,提示大概为:当前上下文不存在名称a,也就是test.aspx的<%=a%>出错了,原因就是C#默认修饰符是private私有的,这在上课我好像说过了,在此不再熬述。
接下来就是Page_Load事件了,我想,你已经知道大概是什么意思了吧?好,现在把这两个文件放在根目录下,打开opera输入地址http://localhost/test.aspx就可以查看效果了。这课的内容比较多,你不必对代码的意思耿耿于怀,你现在需要做的,就是记住这个代码结构,其实,我们用C#来编写asp.net程序,多数功能都是在这个Pgae_Load里进行,这个Page_Load里面的代码是先于aspx页运行的。我们只把处理好的数据用变量的形式传给aspx页就行了。以后,我就要开始讲C#的基本语法了,一切,都会随着学习的深入而一清二楚。
good 13

发表评论

文明评论,重在参与

暂无评论!
雷军主讲北京车展发布会!SU7 04-24
互联网汽车是什么?有什么优势呢 04-20
从“中国制造”走向“中国智造” 04-20
中国接入互联网30周年,马化腾 04-20
中国互联网30周年发展座谈会在 04-20
用著作权法来保护软件是否真的有 07-28
杀毒软件:只在搞娱乐,从未杀过 07-28
小谈高通反垄断 07-28
印度将推出百元智能机 山寨厂商 07-28
高通垄断之痛:不是国产手机大而 07-28
一张图读懂阿里巴巴眼花缭乱资本 07-28
滴滴打车副总裁张晶离职 高层换 07-28
返回Net教程-返回首页
AD