c#

位置:IT落伍者 >> c# >> 浏览文章

.NET程序员面试的题一部


发布日期:2020年08月16日
 
.NET程序员面试的题一部

new 关键字用法

()new 运算符 用于创建对象和调用构造函数

()new 修饰符 用于向基类成员隐藏继承成员

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

如何把一个Array复制到ArrayList里

() 实现 string[] s ={ }; ArrayList list = new ArrayList(); listAddRange(s);

()实现 string[] s ={ }; ArrayList list = new ArrayList(s);

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

DataTable

DataView

DataSet

DataViewManager

任何实现IListSource接口的组件

任何实现IList接口的组件

概述反射和序列化反射公共语言运行库加载器管理应用程序域

这种管理包括将每个程序集加载到相应的应用程序域以及控制每个程序集中类型层次结构的内存布局程序集包含模块而模块包含类型类型又包含成员反射则提供了封装程序集模块和类型的对象您可以使用反射动态地创建类型的实例将类型绑定到现有对象或从现有对象中获取类型然后可以调用类型的方法或访问其字段和属性序列化序列化是将对象状态转换为可保持或传输的格式的过程与序列化相对的是反序列化它将流转换为对象这两个过程结合起来可以轻松地存储和传输数据

概述O/R Mapping 的原理利用反射配置将对象和数据库表映射

可访问性级别有哪几种

public 访问不受限制

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

internal 访问仅限于当前程序集

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

private 访问仅限于包含类型

sealed 修饰符有什么特点

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

列举ADONET中的共享类和数据库特定类共享类

DataSet

DataTable

DataRow

DataColumn

DataRelation

Constraint

DataColumnMapping

DataTableMapping

特定类

(x)Connection

(x)Command

(x)CommandBuilder

(x)DataAdapter

(x)DataReader

(x)Parameter

(x)Transaction

执行下面代码后

String strTemp =abcdefg 某某某

i=? j=?

i=( ) j=( ) 中文两个字节

C#中string str = null 与 string str =请尽量用文字说明区别

string str =初始化对象分配空间而string str=null初始化对象

详述NET里class和struct的异同

结构与类共享几乎所有相同的语法但结构比类受到的限制更多尽管结构的静态字段可以初始化结构实例字段声明还是不能使用初始值设定项结构不能声明默认构造函数(没有参数的构造函数)或析构函数结构的副本由编译器自动创建和销毁因此不需要使用默认构造函数和析构函数实际上编译器通过为所有字段赋予默认值(参见默认值表)来实现默认构造函数结构不能从类或其他结构继承结构是值类型 如果从结构创建一个对象并将该对象赋给某个变量变量则包含结构的全部值复制包含结构的变量时将复制所有数据对新副本所做的任何修改都不会改变旧副本的数据由于结构不使用引用因此结构没有标识 具有相同数据的两个值类型实例是无法区分的C# 中的所有值类型本质上都继承自 ValueType后者继承自 Object编译器可以在一个称为装箱的过程中将值类型转换为引用类型

结构具有以下特点

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

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

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

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

一个结构不能从另一个结构或类继承而且不能作为一个类的基所有结构都直接继承自 SystemValueType后者继承自 SystemObject

结构可以实现接口

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

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

应用程序域应用程序域为安全性可靠性版本控制以及卸载程序集提供了隔离边界应用程序域通常由运行库宿主创建运行库宿主负责在运行应用程序之前引导公共语言运行库应用程序域提供了一个更安全用途更广的处理单元公共语言运行库可使用该单元提供应用程序之间的隔离托管代码使用基于公共语言运行库的语言编译器开发的代码称为托管代码托管代码具有许多优点例如跨语言集成跨语言异常处理增强的安全性版本控制和部署支持简化的组件交互模型调试和分析服务等装箱和拆箱装箱和拆箱使值类型能够被视为对象对值类型装箱将把该值类型打包到 Object 引用类型的一个实例中这使得值类型可以存储于垃圾回收堆中拆箱将从对象中提取值类型重载每个类型成员都有一个唯一的签名方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成只要签名不同就可以在一种类型内定义具有相同名称的多种方法当定义两种或多种具有相同名称的方法时就称作重载 CTS通用类型系统 (common type system) 一种确定公共语言运行库如何定义使用和管理类型的规范 CLR公共语言运行库 NET Framework 提供了一个称为公共语言运行库的运行时环境它运行代码并提供使开发过程更轻松的服务 CLS公共语言规范要和其他对象完全交互而不管这些对象是以何种语言实现的对象必须只向调用方公开那些它们必须与之互用的所有语言的通用功能为此定义了公共语言规范 (CLS)它是许多应用程序所需的一套基本语言功能强类型 C# 是强类型语言因此每个变量和对象都必须具有声明类型

值类型和引用类型的区别? 基于值类型的变量直接包含值将一个值类型变量赋给另一个值类型变量时将复制包含的值这与引用类型变量的赋值不同引用类型变量的赋值只复制对对象的引用而不复制对象本身所有的值类型均隐式派生自 SystemValueType与引用类型不同从值类型不可能派生出新的类型但与引用类型相同的是结构也可以实现接口与引用类型不同值类型不可能包含 null 值然而可空类型功能允许将 null 赋给值类型 每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值值类型主要由两类组成结构枚举结构分为以下几类Numeric(数值)类型整型浮点型decimalbool用户定义的结构引用类型的变量又称为对象可存储对实际数据的引用声明引用类型的关键字classinterfacedelegate内置引用类型 objectstring

如何理解委托委托类似于 C++ 函数指针但它是类型安全的委托允许将方法作为参数进行传递委托可用于定义回调方法委托可以链接在一起例如可以对一个事件调用多个方法方法不需要与委托签名精确匹配有关更多信息请参见协变和逆变 C# 版引入了匿名方法的概念此类方法允许将代码块作为参数传递以代替单独定义的方法

C#中的接口和类有什么异同不能直接实例化接口接口不包含方法的实现接口类和结构可从多个接口继承但是C# 只支持单继承类只能从一个基类继承实现类定义可在不同的源文件之间进行拆分接口类和结构可从多个接口继承接口类似于抽象基类继承接口的任何非抽象类型都必须实现接口的所有成员接口可以包含事件索引器方法和属性一个类可以实现多个接口

的身份验证方式有哪些 Windows 身份验证提供程序提供有关如何将 Windows 身份验证与 Microsoft Internet 信息服务 (IIS) 身份验证结合使用来确保 ASPNET 应用程序安全的信息 Forms 身份验证提供程序 提供有关如何使用您自己的代码创建应用程序特定的登录窗体并执行身份验证的信息使用 Forms 身份验证的一种简便方法是使用 ASPNET 成员资格和 ASPNET 登录控件它们一起提供了一种只需少量或无需代码就可以收集验证和管理用户凭据的方法 Passport 身份验证提供程序 提供有关由 Microsoft 提供的集中身份验证服务的信息该服务为成员站点提供单一登录和核心配置

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

解释一下UDDIWSDL的意义及其作用 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 每个函数的返回值及其数据类型

什么是SOAP SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议是一个基于XML的协议使用SOAP不用考虑任何特定的传输协议(最常用的还是HTTP协议)可以允许任何类型的对象或代码在任何平台上以任何一直语言相互通信 SOAP 是一种轻量级协议用于在分散型分布式环境中交换结构化信息 SOAP 利用 XML 技术定义一种可扩展的消息处理框架它提供了一种可通过多种底层协议进行交换的消息结构 这种框架的设计思想是要独立于任何一种特定的编程模型和其他特定实现的语义 SOAP 定义了一种方法以便将 XML 消息从 A 点传送到 B 点 为此它提供了一种基于 XML 且具有以下特性的消息处理框架) 可扩展) 可通过多种底层网络协议使用) 独立于编程模型

如何部署一个页面 VS 和VS 都有发布机制可以发布然后再复制部署 VS基本上可以直接部署到对应位置

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

Int i=SystemTextEncodingDefaultGetBytes(strTemp)Length;

Int j=strTempLength;

               

上一篇:C#中实现DataGrid双向排序

下一篇:.NET程序调用SSIS中的DTS包