一.private, protected,public,internal修饰符的访问权限。
private:私有成员,在类的内部才可以进行访问。
protect : 保护成员,该类内部和继承类中可以进行访问。
public : 公共成员,完全公开,没有访问限制。
internal : 在同一命名空间内可以进行访问。
二.列举ASP.NET页面之间传递值的几种方式:
1.QueryString 如: id=1;
优点:
使用简单
缺点:
- 缺乏安全性
- 不能传递对象
使用方法: 通过URL传值,使用Response.Redirect()或者Request.QueryString[""]取值。
2.使用session变量 存储于服务器内存
优点:
- 使用简单,不仅能传递简单数据类型,还能传递对象
- 数据量大小是不限制的
缺点:
- 在Session变量存储大量的数据会消耗较多的服务器资源。
- 容易丢失。
使用方法:
- 在源页面的代码中创建需要传递的名称和值,构造Session变量:Session["Name"]="Value(Or Object)";
- 在目的页面的代码使用Session变量取出传递的值。Result = Session["Name"]
注意点:不使用时需要将其销毁,销毁方法是:
清除一个:Session.Remove("session名");
清楚所有:Session.Clear();
3.Cookie 存储于客户端浏览器,储存用户相关的信息,下次可以直接获取使用
优点:
- 使用简单,保持用户状态的常用方式。跨页面访问,可以使用来保存用户信息。
缺点:
- 常常被人认为用来收集用户隐私而遭到批评。
- 安全性不是特别高,容易伪造。
使用方法:
1.在源代码中创建需要传递的名称和值构造Cookie对象:
存储:HttpCookie cookie = new HttpCookie("cookie","hello,cookie");
cookie.Value 值
cookie.Expires 时间
Response.Cookie.Add(cookie);
获取: HttpCookie cookie = Request.Cookie.Get("cookie");
4.Application
Application对象的作用范围是整个全局,也就是对所有用户有效。在整个应用程序生命周期中都是有效的。
优点:
- 使用简单,消耗较少的服务器资源
- 不仅能传递简单数据,还能传递对象
- 数据量大小不受限制。
缺点:
作为全局变量容易被误操作。所以单个用户使用的变量一般不能用Application。
使用方法:
- 在源页面的代码中创建需要传递的名称和值:Application["Name"] = "Value(Or Object)";
- 在目的页面的代码使用Application变量取出传递的值。Result = Application["Name"];
注意:常见lock和unlock方法用来锁定和解锁,为了防止并发修改。
5.Server.Transfer
这个才可以说是面向对象开发所使用的的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面向对象的,简洁有效。
从一个ASPX到一个新的ASPX页面。
优点:
- 直接在服务器端重定向,使用简单方便,减少了客户端对服务器提出请求。
- 可以传递各种数据类型的值和控件的值。
缺点:
- 客户端浏览器中的url地址是不改变,会导致在新的页面可能出现一些意向不到的问题。比如源地址和目标地址不在一个虚拟目录或子目录下,或者使用了相对路径的图片,路径导致的错误指向。
使用方法:
- 在页面的代码中,使用Page类的Server.Transfer跳到另一个页面传递页面数据:Server.Transfer("b.aspx","false")。
- 在目的页面中,使用Context.Handler来接收数据:FormerPage formerPage = (FormerPage)Context.Handler;然后用
formerPage的属性和方法来获取值。或者使用Context.Items[""]来获取
比较Server.Transfer和Response.Redirect的区别:
1.Server.Transfer是在服务器端完成,url地址不改变。Response.Redirect是客户端完成,向服务器端提出新的页面处理请求,所以客户端浏览器中的URL地址是会改变的。
2.Server.Transfer服务端完成,不需要提到客户端进行请求。
3.Server.Transfer只能够转调到本地虚拟目录指定的页面,也就是工程项目中的页面,而Response.Redirect则十分灵活,可以跳转任何URL。
4.Server.Transfer可以将前一个页面的各种类型的值传送到新的页面。Response.Redirect则只能借助URL中带参数或是结合上面的四种办法把各种类型的值传到新页面。
优点:
- 直接在服务器端重定向,使用简单方便,减少了客户端对服务器提出请求。
- 可以传递各种数据类型的值和控件的值。