zoukankan      html  css  js  c++  java
  • 【修订版】C#/ASP.Net 面试题及答案(1)

    这些题目都来源于网络,参考之前的答案,针对每道题做了简单的分析,恳请大家批评指正。

    1. 简述 private、 protected、 public、 internal 修饰符的访问权限。
    答:本题考察 类的成员的可访问性。

    可访问性的关键字有如下5个:

    internal:在所属程序集中可以访问。

    private:私有成员, 在当前类中可以访问。

    protected:保护成员,在当前类及其子类中可以访问。

    public:公共成员,完全公开,没有访问限制。

    internal protected:在所属程序集或当前类的子类中可以访问。(题目中未提及)
    【扩展】

    类的修饰符:abstract,sealed,static,unsafe 4个。

    abstract:类是抽象的,不能创建类的实例

    sealed:类是密封的,不能被继承

    static:类是静态的,只有静态成员,没有非静态成员

    unsafe:类有非安全的结构,比如指针

    2 .列举ASP.NET 页面之间传递值的几种方式。
    答:有 querystring,cookie,session,server.transfer,application 5种方式。

    【扩展】

    1.使用QueryString方式(或称url传值、Response.Redirect传值),这是最简单的方式,因为传递的值在浏览器的url中会显示出来,所以用来传递没有安全要求的值。

    发送页面代码:

    1 Response.Redirect("index.aspx?username="+txtUserName.Text.Trim());

    接收页面代码:

    1 if(Request.QueryString["username"]!=null)
    2 {
    3     strUserName = Request.QueryString["username"];
    4 }

    2.使用cookie方式,cookie由服务器创建,但是保存在客户端

    发送页面代码:

    1 HttpCookie userName = new HttpCookie("username");
    2 userName.Value = this.txtUserName.Text.Trim();
    3 Response.Cookies.Add(userName);
    4 Response.Redirect("index.aspx");

    接收页面代码:

    1 if (Request.Cookies["username"!= null)
    2 {
    3     strUserName = Request.Cookies["username"].Value;
    4 }

    3.使用Session变量,session在用户向服务器发出首次请求时被创建,在服务器端,在用户关闭浏览器或异常发生时终止(还有别的session过期情况)。

    发送页面代码:

    1 Session["username"= this.txtUserName.Text.trim();
    2 Response.Redirect("index.aspx");

    接收页面代码:

    1 if (Session["username"!= null)
    2 {
    3     strUserName = Session["username"].ToString();
    4 }

    4.使用Application变量

    发送页面代码:

    1 Application["username"= this.txtUserName.Text.trim();
    2 Response.Redirect("index.aspx");

    接收页面代码:

    1 if (Application["username"!= null)
    2 {
    3     strUserName = Application["username"].ToString();
    4 }

    5.使用Server.Transfer方式(或称为HttpContext方式),要传递的变量可以通过属性或方法来获得,使用属性比较容易一些。

    发送页面制作一个属性:

    1 public string GetName
    2 {
    3     get { return this.txtUserName.Text.Trim(); }
    4 }

    发送页面代码:

    1 Server.Transfer("index.aspx");

    接收页面代码:

    1 = (WebForm4)Context.Handler;
    2 strUserName = w.GetName;

    3.重写、重载和隐藏三个概念的区别。
    答:

    重写(override)指用override关键字重新实现基类中的虚方法,在运行过程中,无论通过哪个类型的引用,真正对象类型的方法将被调用。

    重载(overload)指多个方法共享一个名字并且拥有相同的返回值,但是拥有不同的参数。

    隐藏(new)指用new关键字重新实现基类中的方法,在运行的过程中通过引用的类型判断应该调用哪个类型的方法。

    【扩展】

    重写实现的是运行时多态,重载实现的是编译时多态。

    代码
     1 public class FatherClass
     2 {
     3     public virtual void Method()
     4     {
     5         Console.WriteLine("FatherClass.Method");
     6     }
     7 }
     8 public class ChildClass : FatherClass
     9 {
    10     public override void Method()
    11     {
    12         Console.WriteLine("ChildClass.Method");
    13     }
    14 }
    15 public class NewClass:FatherClass
    16 {
    17     public new virtual void Method()
    18     {
    19         Console.WriteLine("NewClass.Method");
    20     }
    21 }
    22 public class OverloadClass
    23 {
    24     public void MethodA()
    25     {
    26         Console.WriteLine("MethodA:");
    27     }
    28     public void MethodA(string str1)
    29     {
    30         Console.WriteLine("MethodA:"+str1);
    31     }
    32     public void MethodA(string str1,string str2)
    33     {
    34         Console.WriteLine("MethodA:" + str1+","+str2);
    35     }
    36 }
    37 
    38 public static void Main()
    39 {
    40     FatherClass fcOverride = new ChildClass();
    41     fcOverride.Method();
    42     FatherClass fcNew = new NewClass();
    43     fcNew.Method();
    44 
    45     OverloadClass oc = new OverloadClass();
    46     oc.MethodA();
    47     oc.MethodA("1");
    48     oc.MethodA("1""2");
    49 }
  • 相关阅读:
    ASP.NET ValidationGroup 属性和CssClass 属性
    sql 在将 nvarchar 值 转换成数据类型 int 时失败。
    select 1 from table
    OLEDB和ODBC的区别
    ASP.NET 读数据库绑定到 TreeView 递归方式
    用python做网页抓取与解析入门笔记[zz]
    win8.1安装驱动出现“文件的哈希值不在指定的目录”的解决办法[zz]
    Linux磁盘IO监控[zz]
    硬盘内部硬件结构和工作原理详解[zz]
    fcitx五笔的安装[zz]
  • 原文地址:https://www.cnblogs.com/temptation/p/1647968.html
Copyright © 2011-2022 走看看