.Net面试题

一.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中带参数或是结合上面的四种办法把各种类型的值传到新页面。

优点:

  • 直接在服务器端重定向,使用简单方便,减少了客户端对服务器提出请求。
  • 可以传递各种数据类型的值和控件的值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值