.net程序员面试问题
.net程序员面试问题分享
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可以连接什么数据源
DataTable
DataView
DataSet
DataViewManager
任何实现IListSource接口的组件
任何实现IList接口的组件
4.概述反射和序列化
反射
公共语言运行库加载器管理应用程序域。这种管理包括将每个程序集加载到相应的应用程序域以及控制每个程序集中类型层次结构的内存布局。
程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。
序列化
序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。
5.概述O/R Mapping 的原理
利用反射,配置将对象和数据库表映射。
6. 可访问性级别有哪几种
public 访问不受限制。
protected 访问仅限于包含类或从包含类派生的类型。
internal 访问仅限于当前程序集。
protected internal 访问仅限于从包含类派生的当前程序集或类型。
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# 是强类型语言;因此每个变量和对象都必须具有声明类型。
-
经典面试题解答大全
面试官在面试环节中很喜欢会向应聘者发问,而应聘者的回答将成为面试官考虑是否接受他的重要依据。所以对应聘者来说,如何完美解答这些问题至关重要。下面是本站对面试中经常出现的经典问题进行了整理,并给出相应的解答思路,大家敬请参考。问题一:请你自我介绍一下思...
-
面试考官会提哪些问题
面试是通过书面或面谈的形式来考察一个人的工作能力与否,物以类聚,通过面试可以初步判断应聘者是否可以融入自己的团队。下面是小编整理的面试考官会提哪些问题,欢迎来参考!1、请你自我介绍一下你自己?回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、...
-
突然接到面试电话的回答
当你在嘈杂的环境中突然接到面试电话,你会?A.无所谓,留在原地,继续接听B.立刻找一个比较安静的地方C.附近没有安静的地方,请对方留下联系方式,然后迅速打过去D.附近没有安静的地方,请对方留下联系方式,第二天再打推荐选项:B选择A:很抱歉,基本上你不会给对方留下任何好印象...
-
外企面试关键是什么?
应聘者去外企应遵循的规则听上去很简单,共有三条。不过,表面简单,要做到却也不那么容易。外企的关键。1、Smile贯穿应聘全过程应聘者进了公司,从跟前台打交道开始,就不妨以笑脸示人。见到官之后,不管对方是何种表情,都要马上起身,微笑着与其握手、作自我介绍。在面试进...