杭州-DOTNET笔试题集


Posted in 面试题 onSeptember 25, 2013
c#笔试题总结(二)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。

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

结构具有以下特点:

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

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

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

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

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

l 结构可以实现接口。

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

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...

面试题 相关文章推荐
如何设置Java的运行环境
Apr 05 面试题
C,C++的几个面试题小集
Jul 13 面试题
北承题目(C++)
May 16 面试题
指针和引用有什么区别
Jan 13 面试题
.net面试题
Dec 22 面试题
HSRP的含义以及如何工作
Sep 10 面试题
Can a struct inherit from another struct? (结构体能继承结构体吗)
Sep 25 面试题
Linux面试题LINUX系统类
Nov 25 面试题
EJB需直接实现它的业务接口或Home接口吗,请简述理由
Nov 23 面试题
新锐科技Java程序员面试题
Jul 25 面试题
方正Java笔试题
Jul 03 面试题
请介绍一下WSDL的文档结构
Mar 17 面试题
西安众合通用.net笔试题
Mar 18 #面试题
.net软件工程师面试题
Mar 31 #面试题
深圳-东方伟业笔试部分
Feb 11 #面试题
.NET方向面试题
Nov 20 #面试题
武汉世纪畅想数字传播有限公司 .NET笔试题
Jun 13 #面试题
南京软件公司的.net程序员笔试题
Aug 31 #面试题
广州品高软件.net笔面试题目
Apr 18 #面试题
You might like
mysq GBKl乱码
2006/11/28 PHP
发布一个用PHP fsockopen写的HTTP下载的类
2007/02/22 PHP
PHP对字符串的递增运算分析
2010/08/08 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
javascript hashtable实现代码
2009/10/13 Javascript
基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
2011/10/10 Javascript
用js将内容复制到剪贴板兼容浏览器
2014/03/18 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
JS实现的在线调色板实例(附demo源码下载)
2016/03/01 Javascript
AngularJS页面传参的5种方式
2017/04/01 Javascript
JavaScript箭头函数_动力节点Java学院整理
2017/06/28 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
运用js实现图层拖拽的功能
2019/05/24 Javascript
细说webpack6 Babel的使用详解
2019/09/26 Javascript
详解ES6新增字符串扩张方法includes()、startsWith()、endsWith()
2020/05/12 Javascript
Javascript实现鼠标移入方向感知
2020/06/24 Javascript
Map与WeakMap类型在JavaScript中的使用详解
2020/11/18 Javascript
整理Python最基本的操作字典的方法
2015/04/24 Python
Python爬取三国演义的实现方法
2016/09/12 Python
Python脚本实时处理log文件的方法
2016/11/21 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
2017/09/24 Python
详解Python自建logging模块
2018/01/29 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
Python 中使用 PyMySQL模块操作数据库的方法
2019/11/10 Python
pyecharts调整图例与各板块的位置间距实例
2020/05/16 Python
numpy的Fancy Indexing和array比较详解
2020/06/11 Python
详解css3中的伪类before和after常见用法
2020/11/17 HTML / CSS
html5如何及时更新缓存文件(js、css或图片)
2013/06/24 HTML / CSS
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
产品销售计划书
2014/05/04 职场文书
建筑工地资料员岗位职责
2015/04/13 职场文书
刑事附带民事诉讼答辩状
2015/05/22 职场文书
千手观音观后感
2015/06/03 职场文书
五星级酒店宣传口号
2015/12/25 职场文书
python实现三次密码验证的示例
2021/04/29 Python