2011年.NET面试题总结—献给即将找工作的同行们

 

.Net基础知识
什么是面向对象
         面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP;

         通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),它们可以自己完成自己的功能,而不是像C那样分成一个个函数;

         现在纯正的OO语言主要是java和C#,C++也支持OO,C是面向过程的。

阐述面向接口、面向对象、面向方面编程的区别
面向对象不好解释,可以理解为以一切元素都是对象,在设计时以对象为单位,考虑它的属性及方法。设计中采用了封装、继承、抽象的手法

面向接口本身就是面向对象的,无所谓区别,只不过面向接口的好处是耦合性低

面向方面Aspect-Oriented Programming (AOP)就是大名鼎鼎的AOP。其实有点象struts里的拦截。

         举例:假设有在一个应用系统中,有一个共享的数据必须被并发同时访问,首先,将这个数据封装在数据对象中,称为Data Class,同时,将有多个访问类,专门用于在同一时刻访问这同一个数据对象。

为了完成上述并发访问同一资源的功能,需要引入锁Lock的概念,也就是说,某个时刻,当有一个访问类访问这个数据对象时,这个数据对象必须上锁Locked,用完后就立即解锁unLocked,再供其它访问类访问。 

面向对象的思想主要包括什么?
继承:子类拥有父类的所有数据和操作。

封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内。

多态:一个程序中同名的不同方法共存的情况。有两种形式的多态–重载与重写。 

抽象类是否可以继承实体类?
抽象类可以继承实体类,但是有个条件,条件是,实体类必须要有明确的构造函数。

当类T只声明了私有实例构造函数时,则在T的程序文本外部,是否可以从T派生出新的类,是否可以直接创建T的任何实例。
不可以,不可以

C#中有没有静态构造函数,如果有是做什么用的?
    有. 静态构造函数用于初始化类。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。静态构造函数既没有访问修饰符,也没有参数。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。无法直接调用静态构造函数。在程序中,用户无法控制何时执行静态构造函数。静态构造函数的典型用途是:当类使用日志文件时,将使用这种构造函数向日志文件中写入项。

什么是.net?
     .net是一种平台和框架, .net 不是单纯的语言也不是单纯的工具,它是从底层平台开始构建起来的一个整体框架

请以图示方式解释.net framework?
VB

 C++

 C#

 Jscript

 …

Common Language Specification

XML Web

services

 Web Forms

Windows Forms

Data and XML

Base Class Library

CLR

CLI

Visual Studio .NET

程序集与命名空间有什么不同?
         命名空间是用于避免命名冲突,专用于组织代码,当代码要在其他某个应用程序中重用时,可以降低复杂性。

         程序集是重用代码的一种方式验证控件

不同: 可以将相同命名空间中的类部署到不同的程序集中,也可以命名空间中的类部署到一个程序集中

命名空间
 程序集

有逻辑编译时机制
 有物理编译时机制

不是运行时实体
 是运行时实体

为源代码元素的名称提供逻辑结构
 为可执行文件的运行时提供物理结构

什么是WEB控件?使用WEB控件有那些优势?
         WEB控件是能拖放在WEB页面上的控件

         WEB控件分为:内部控件, 列表控件, 复杂控件, 

?WEB控件优势:

l  Web 控件是对象,与对象一样,Web 控件拥有方法和属性,并且响应事件

l  一旦将 Web 控件包括在 Web 页中,就可以设置其属性并调用其方法

l  可以为 Web 控件编写服务器端代码以响应在客户端上发生的事件

ASP。NET中共有几种类型的控件?各有什么区别?
         WEB控件分为:内部控件, 列表控件, 复杂控件, 验证控件

         内部控件:内部控件的使用方法与 HTML 控件相同,它们映射到 HTML 元素并通过使用 runat = "server" 属性在服务器上执行 

         列表控件:用于在 Web 页中创建数据列表

         复杂控件:当希望控件拥有复杂的功能或使用 HTML 元素无法创建的功能丰富的用户界面时,可以使用复杂控件

         验证控件:输入控件的数据需要进行准确性和取值范围方面的检查

WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回。
    由于ASP。NET是Web页面和服务端分离的,因此要产生了服务端事件. 

         使用_doPostBack函数能够自动地把客户端的javascript事件转变为一个服务器端的事件

,Asp.net框架自动为我们处理有关的细节简化工作。

     使用自动传回的特性:在检测到一个特定用户动作时,自动传回能够将这个页面传回服务器以处理

事件.

    在web控件发生事件时,客户端采用提交的形式将数据交回服务端,服务端先调用Page_Load事件,然后根据传回的状态信息自动调用服务端事件自动传回是当我们在点击客户端控件时,采用提交表单的形式将数据直接传回到务端。只有通过自动传回才能实现服务端事件的机制,如果没有自动回传机制就只能调用客户端事件,而不能调用服务端事件

请解释ASP.NET中以什么方式进行数据验证。
    Aps.net 中有非空验证,比较验证,取值范围验证,正则表达式验证及客户自定义验证五大控件,另还有一个集中验证信息处理控件

什么是ASP.Net中的用户控件
用户控件是能够在其中放置标记和 Web 服务器控件的容器。然后,可以将用户控件作为一个单元对待,为其定义属性和方法。

用户控件以。ascx为扩展名,可以拖到不同的页面中调用,以节省代码。比如登陆可能在多个页面上有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写方法调整。

问这样的问题,一般是迷惑你。因为新手还是分不清楚用户控件和服务器控件(也称自定义控件),用户控件一般用在内容多为静态,或者少许会改变的情况下,用的比较大,类似ASP中的include。。但是功能要强大的多。

WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
可以调用

例如:

2.这是最常见的一种转向方法;

HyperLink控件

1.Asp.net 服务器端控件属性NavigateUrl指定要跳转到的Url地址

2. NavigateUrl是可以在服务器端使用代码修改,这个区别于)原创编译,转载请保留链接:

 

相关文章

发表评论 取消回复

电子邮件地址不会被公开。 必填项已用*标注