.NET常见笔试题集


Posted in 面试题 onDecember 01, 2012
1. new 关键字用法(1)new 运算符

用于创建对象和调用构造函数。

(2)new 修饰符

用于向基类成员隐藏继承成员。

(3)new 约束

用于在泛型声明中约束可能用作类型参数的参数的类型。

2.如何把一个Array复制到ArrayList里

(1) 实现1

string[] s ={ “111″, “22222″ };

ArrayList list = new ArrayList();

list.AddRange(s);

(2)实现2

string[] s ={ “111″, “22222″ };

ArrayList list = new ArrayList(s);

3.DataGrid的Datasouse可以连接什么数据源

l DataTable

l DataView

l DataSet

l DataViewManager

l 任何实现IListSource接口的组件

l 任何实现IList接口的组件

4.概述反射和序列化

反射

公共语言运行库加载器管理应用程序域。这种管理包括将每个程序集加载到相应的应用程序域以及控制每个程序集中类型层次结构的内存布局。

程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。

序列化

序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。

5.概述O/R Mapping 的原理

利用反射,配置将对象和数据库表映射。

6. 可访问性级别有哪几种

l public 访问不受限制。

l protected 访问仅限于包含类或从包含类派生的类型。

l internal 访问仅限于当前程序集。

l protected internal 访问仅限于从包含类派生的当前程序集或类型。

l private 访问仅限于包含类型。

7. sealed 修饰符有什么特点

sealed 修饰符可以应用于类、实例方法和属性。密封类不能被继承。密封方法会重写基类中的方法,但其本身不能在任何派生类中进一步重写。当应用于方法或属性时,sealed 修饰符必须始终与 override一起使用。

8.列举ADO.NET中的共享类和数据库特定类

共享类

DataSet

DataTable

DataRow

DataColumn

DataRelation

Constraint

DataColumnMapping

DataTableMapping

特定类

(x)Connection

(x)Command

(x)CommandBuilder

(x)DataAdapter

(x)DataReader

(x)Parameter

(x)Transaction

9.执行下面代码后:

String strTemp =”abcdefg 某某某”;

Int i=System.Text.Encoding.Default.GetBytes(strTemp).Length;

Int j=strTemp.Length;

问:

i=?

j=?

i=(14 ) ;j=(11 ) 中文两个字节

10.C#中,string str = null 与 string str =”",请尽量用文字说明区别。

string str =”"初始化对象分配空间

而string str=null初始化对象

11.详述.NET里class和struct的异同

结构与类共享几乎所有相同的语法,但结构比类受到的限制更多:

尽管结构的静态字段可以初始化,结构实例字段声明还是不能使用初始值设定项。

结构不能声明默认构造函数(没有参数的构造函数)或析构函数。

结构的副本由编译器自动创建和销毁,因此不需要使用默认构造函数和析构函数。实际上,编译器通过为所有字段赋予默认值(参见默认值表)来实现默认构造函数。结构不能从类或其他结构继承。

结构是值类型 — 如果从结构创建一个对象并将该对象赋给某个变量,变量则包含结构的全部值。复制包含结构的变量时,将复制所有数据,对新副本所做的任何修改都不会改变旧副本的数据。由于结构不使用引用,因此结构没有标识 — 具有相同数据的两个值类型实例是无法区分的。C# 中的所有值类型本质上都继承自 ValueType,后者继承自 Object。

编译器可以在一个称为装箱的过程中将值类型转换为引用类型。

结构具有以下特点:

结构是值类型,而类是引用类型。

向方法传递结构时,结构是通过传值方式传递的,而不是作为引用传递的。

与类不同,结构的实例化可以不使用 new 运算符。

结构可以声明构造函数,但它们必须带参数。

一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自 System.ValueType,后者继承自 System.Object。

结构可以实现接口。

在结构中初始化实例字段是错误的。

12.什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?

应用程序域

应用程序域为安全性、可靠性、版本控制以及卸载程序集提供了隔离边界。应用程序域通常由运行库宿主创建,运行库宿主负责在运行应用程序之前引导公共语言运行库。应用程序域提供了一个更安全、用途更广的处理单元,公共语言运行库可使用该单元提供应用程序之间的隔离。

托管代码

使用基于公共语言运行库的语言编译器开发的代码称为托管代码;托管代码具有许多优点,例如:跨语言集成、跨语言异常处理、增强的安全性、版本控制和部署支持、简化的组件交互模型、调试和分析服务等。

装箱和拆箱

装箱和拆箱使值类型能够被视为对象。对值类型装箱将把该值类型打包到 Object 引用类型的一个实例中。这使得值类型可以存储于垃圾回收堆中。拆箱将从对象中提取值类型。

重载

每个类型成员都有一个唯一的签名。方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成。只要签名不同,就可以在一种类型内定义具有相同名称的多种方法。当定义两种或多种具有相同名称的方法时,就称作重载。

CTS通用类型系统 (common type system)

一种确定公共语言运行库如何定义、使用和管理类型的规范。

CLR公共语言运行库

.NET Framework 提供了一个称为公共语言运行库的运行时环境,它运行代码并提供使开发过程更轻松的服务。

CLS公共语言规范

要和其他对象完全交互,而不管这些对象是以何种语言实现的,对象必须只向调用方公开那些它们必须与之互用的所有语言的通用功能。为此定义了公共语言规范 (CLS),它是许多应用程序所需的一套基本语言功能。

强类型

C# 是强类型语言;因此每个变量和对象都必须具有声明类型。

13.值类型和引用类型的区别?

基于值类型的变量直接包含值。将一个值类型变量赋给另一个值类型变量时,将复制包含的值。这与引用类型变量的赋值不同,引用类型变量的赋值只复制对对象的引用,而不复制对象本身。

所有的值类型均隐式派生自 System.ValueType。

与引用类型不同,从值类型不可能派生出新的类型。但与引用类型相同的是,结构也可以实现接口。

与引用类型不同,值类型不可能包含 null 值。然而,可空类型功能允许将 null 赋给值类型。

每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。

值类型主要由两类组成:结构、枚举

结构分为以下几类:Numeric(数值)类型、整型、浮点型、decimal、bool、用户定义的结构。

引用类型的变量又称为对象,可存储对实际数据的引用。声明引用类型的关键字:class、interface、delegate、内置引用类型: object、string

14.如何理解委托

委托类似于 C++ 函数指针,但它是类型安全的。

委托允许将方法作为参数进行传递。

委托可用于定义回调方法。

委托可以链接在一起;例如,可以对一个事件调用多个方法。

方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。

C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。

15.C#中的接口和类有什么异同。

异:

不能直接实例化接口。

接口不包含方法的实现。

接口、类和结构可从多个接口继承。但是C# 只支持单继承:类只能从一个基类继承实现。

类定义可在不同的源文件之间进行拆分。

同:

接口、类和结构可从多个接口继承。

接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。

接口可以包含事件、索引器、方法和属性。

一个类可以实现多个接口。

16.ASP.net的身份验证方式有哪些

Windows 身份验证提供程序

提供有关如何将 Windows 身份验证与 Microsoft Internet 信息服务 (IIS) 身份验证结合使用来确保 ASP.NET 应用程序安全的信息。

Forms 身份验证提供程序

提供有关如何使用您自己的代码创建应用程序特定的登录窗体并执行身份验证的信息。使用 Forms 身份验证的一种简便方法是使用 ASP.NET 成员资格和 ASP.NET 登录控件,它们一起提供了一种只需少量或无需代码就可以收集、验证和管理用户凭据的方法。

Passport 身份验证提供程序

提供有关由 Microsoft 提供的集中身份验证服务的信息,该服务为成员站点提供单一登录和核心配置

17.活动目录的作用

Active Directory存储了有关网络对象的信息,并且让管理员和用户能够轻松地查找和使用这些信息。Active Directory使用了一种结构化的数据存储方式,并以此作为基础对目录信息进行合乎逻辑的分层组织。

18.解释一下UDDI、WSDL的意义及其作用

UDDI

统一描述、发现和集成协议(UDDI, Universal Description, Discovery and Integration)是一套基于Web的、分布式的、为Web服务提供的信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web服务注册以使得别的企业能够发现的访问协议的实现标准。UDDI 提供了一组基于标准的规范用于描述和发现服务,还提供了一组基于因特网的实现。

WSDL

WSDL描述Web服务的公共接口。这是一个基于XML的关于如何与Web服务通讯和使用的服务描述;

l 服务 URL 和命名空间

l 网络服务的类型(可能还包括 SOAP 的函数调用,正像我所说过的,WSDL 足够自如地去描述网络服务的广泛内容)

l 有效函数列表

l 每个函数的参数

l 每个参数的类型

l 每个函数的返回值及其数据类型

19.什么是SOAP

SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。

SOAP 是一种轻量级协议,用于在分散型、分布式环境中交换结构化信息。 SOAP 利用 XML 技术定义一种可扩展的消息处理框架,它提供了一种可通过多种底层协议进行交换的消息结构。 这种框架的设计思想是要独立于任何一种特定的编程模型和其他特定实现的语义。

SOAP 定义了一种方法以便将 XML 消息从 A 点传送到 B 点。 为此,它提供了一种基于 XML 且具有以下特性的消息处理框架:1) 可扩展,2) 可通过多种底层网络协议使用,3) 独立于编程模型。

20.如何部署一个ASP.net页面

VS 2005和VS 2003都有发布机制。2003可以发布然后再复制部署。

VS2005基本上可以直接部署到对应位置。

21.如何理解.net中的垃圾回收机制

.NET Framework 的垃圾回收器管理应用程序的内存分配和释放。每次您使用 new 运算符创建对象时,运行库都从托管堆为该对象分配内存。只要托管堆中有地址空间可用,运行库就会继续为新对象分配空间。但是,内存不是无限大的。最终,垃圾回收器必须执行回收以释放一些内存。垃圾回收器优化引擎根据正在进行的分配情况确定执行回收的最佳时间。当垃圾回收器执行回收时,它检查托管堆中不再被应用程序使用的对象并执行必要的操作来回收它们占用的内存。

Tags in this post...

面试题 相关文章推荐
怎样让char类型的东西转换成int类型
Dec 09 面试题
char型变量中能不能存贮一个中文汉字
Jul 08 面试题
如何删除一个表里面的重复行
Jul 13 面试题
delegate与普通函数的区别
Jan 22 面试题
标记环网Toke Ring IEEE802.5
May 26 面试题
介绍一下如何利用路径遍历进行攻击及如何防范
Jan 19 面试题
Python里面search()和match()的区别
Sep 21 面试题
同步和异步有何异同,在什么情况下分别使用他们?
Dec 28 面试题
过滤器的用法
Oct 08 面试题
介绍一下Java中标识符的命名规则
Feb 03 面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
Jul 27 面试题
Java如何支持I18N?
Oct 31 面试题
什么情况下你必须要把一个类定义为abstract的
Jan 06 #面试题
XML文档面试题
Aug 05 #面试题
Internal修饰符有什么含义
Jul 10 #面试题
一套带网友答案的.NET笔试题
Dec 06 #面试题
私有程序集与共享程序集有什么区别
Apr 05 #面试题
.NET现在共支持多少种语言
Feb 26 #面试题
关于.NET, HTML的五个问题
Aug 29 #面试题
You might like
PHP 年龄计算函数(精确到天)
2012/06/07 PHP
详解PHP中的Traits
2015/07/29 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
2017/05/20 PHP
JavaScript实现Sleep函数的代码
2007/03/04 Javascript
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
原生js写的放大镜效果
2012/08/22 Javascript
jQuery 获取URL的GET参数值的小例子
2013/04/18 Javascript
js编码、解码函数介绍及其使用示例
2013/09/05 Javascript
JS、CSS加载中的小问题探讨
2013/11/26 Javascript
JavaScript中的对象序列化介绍
2014/12/30 Javascript
一个超简单的jQuery回调函数例子(分享)
2016/08/08 Javascript
Javascript使用SWFUpload进行多文件上传
2016/11/16 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
vue中实现左右联动的效果
2018/06/22 Javascript
详解vue+webpack+express中间件接口使用
2018/07/17 Javascript
JavaScript中arguments和this对象用法分析
2018/08/08 Javascript
微信小程序 确认框的实现(附代码)
2019/07/23 Javascript
vue实现点击按钮“查看详情”弹窗展示详情列表操作
2020/09/09 Javascript
[38:44]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第二局
2016/02/25 DOTA
[33:33]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第二场 11.27
2020/11/30 DOTA
Python实现OpenCV的安装与使用示例
2018/03/30 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
用pyqt5 给按钮设置图标和css样式的方法
2019/06/24 Python
python切片的步进、添加、连接简单操作示例
2019/07/11 Python
Django发送邮件和itsdangerous模块的配合使用解析
2019/08/10 Python
python定位xpath 节点位置的方法
2019/08/27 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
写给妈妈的道歉信
2014/01/11 职场文书
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
中班下学期个人总结
2015/02/12 职场文书
党员年度个人总结
2015/02/14 职场文书
党员带头倡议书
2015/04/29 职场文书
2015年大学团支部工作总结
2015/05/13 职场文书