.net经典题

1.简述private,protected,public,internal修饰符的访问权限
private:私有成员 ,只能在类的内部调用
protected:保护成员,只有类和继承类可以访问
public:公共成员,完全公开没有访问限制
internal:当前程序集内可以访问

2.ADO.NET中五个主要对象
1.connection连接,开启程序和数据库之间的链接
2.command指令,用于对数据库发出一些指令,比如增删查改
3.data adapter 数据适配器,主要用作于数据源和dataset的传输
4.dataset 数据集合,主要是起到一个暂存区(cache)的作用
5.datareader,循序读取数据,数据存在数据库的服务器中,不是一次加载到程序内存中

3.列举ASP.NET页面之间传递值的几种方式
1.QureyString
2.Session
3.Server.Transfer 服务器内部转接
4.Cookie

4.C#中的委托是什么,事件是不是一种委托,事件和委托的关系.
委托类似函数指针,但比指针要安全,就是将一个方法当作另一个方法的参数
是,事件是一种特殊的委托,不带方法体的委托
事件的内部是委托实现的

5.override重写和overload重载的区别
都是实现多态性,重载是在编译时实现多态性,重写是在运行时实现多态性.
overload重载:方法名相同,参数列表不同(参数和数据类型不同,个数不同),返回类型可同可不同,
原因是为了是在调用方法时根据当前的参数,来决定具体使用那个方法.
override:重写,子类在重写父类时,方法名相同,参数列表相同,返回类型相同.
为的是在同样的方法中将原来的功能覆盖,也称方法覆盖

6.C#中的索引器是否只能根据数字进行索引?是否允许多个索引器的参数.
索引器的索引值不受类型的限制,可以有多个参数.
修饰符 数据类型 this[索引类型 index]{
get{获取属性代码};
set{设置属性代码};
}

7.属性和public字段的区别是什么,调用set方法为一个属性设置值,然后用get方法读取出来的值一定是set进去的值吗?
属性在设置值和取值的过程中对非法值的控制.
一般来说get的值就是set的值,但是也有例外,就是直接在get值时return固定值.

8.三层架构
表现层(UI) :用户所看见的操作界面
逻辑层(BLL):对数据的操作和业务的处理
数据层(DAL):直接操作数据库,对数据库的增删查改
优点:分工明确,条理清晰,易于调试,有很大的扩展性
缺点:增加成本

9.什么是装箱(boxing)什么是拆箱(unboxing)
装箱是将值类型转换成引用类型,不需要显示装换
拆箱是将引用类型转换成值类型,需要显示装换
拆箱的必要条件是装箱

10.CTS、CLS、CLR分别作何解释(*)把英文全称背过来
CTS: Common Type system 通用系统类型 比如:int32,int16–>int String-string Boolean–>bool
CLS: Common language Specification 通用语言规范 不同的语言语法不同
CLR: Common language runtime 公共语言运行时 就是.net提供的那些类

11.在dotnet中类(class)和结构(struct)的异同
class可以被实例化,属于引用类型,分配在内存堆上的.类是引用传递的
struct属于值类型,分配在内存栈上,结构体是复制传 int32和Boolean等都是结构体

12.堆和栈的区别
栈的内存空间都是编译期间系统自动分配和释放的,比如值类型和类型变量
堆的内存空间都是程序员自己分配和释放的

13.能用foreach遍历访问的对象的要求
需要实现IEnumerable接口和声明GetEnumerator方法的类型

14.GC是什么?为什么有GC.
GC在.net中是垃圾收集器,程序员不用担心内存管理,因为垃圾收集器会自动进行管理,
但GC只能处理管托内存资源的释放,而非管托的内存资源,程序员就需要自己手动释放

15.值类型和引用类型的区别? (未完成)
1.将一个值类型变量赋值给另一个值类型变量时,将复制包含的值
将一个引用类型变量赋值只会复制对象的引用,而不是对象的本身
2.值类型不能派生新的类型,所有值类型均隐式派生 system.Valuetype
3.值类型不能为null,而引用类型可以为null

16.C#中的接口和类有什么异同
不同点:
不能直接实例化接口
接口不包含方法的实现
接口能够多继承,而类只能单继承
类可以定义在不同的源文件之间进行拆分
相同点
接口和类都有方法,属性,索引器,事件

17.abstract class和interface的区别
相同点:
抽象类和接口都不能直接实例化,都可以通过继承方式实现抽象方法
不同点:
接口只能定义行为,而抽象类型可以定义行为,也可以提供实现
接口只包含方法,属性,索引器,事件,不能定义字段和实现方法
而抽象类能够定义字段.属性和实现方法
接口作用于值类型和引用类型,而抽象类只能作用于引用类型

18.是否可以继承string类型
不可以,string类是密封(sealed)类,不可继承

19.int,DateTime和string是否可以为null
int,DateTime不可以为null,因为为值类型,值类型不可以为null
string可以为null因为为引用类型,引用类型可以为null

20.using关键字有什么用,什么是IDisposable
using是声明命名空间(namespace)的引入,可以实现非托管资源的释放,
IDisposable的类在using中创建,当using结束后会自动调用该对象的Dispose方法,释放资源
using其实等价于try……finally,用起来更方便
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值