1、using语法有用么?什么是idisposable?他是如何实现确定性终结的?
2、finalize()和dispose()之间的区别?
3、datetime 类型是否可以为null?
4、强签名程序集和弱签名程序集有什么区别?
5、什么是interface?它与abstract class 有什么区别?
6、描述线程与进程的区别?
7、描述c#中索引器的实现过程,是否只能根据数字进行索引?
8、什么是托管代码?
9、以前写过测试用例么?有没有写过UT ?怎么样写的UT?
10、interface和abstract class能不能包含static方法?为什么?、
11、数组有length()方法么? string有length()方法么?
12、sleep()和wait()有什么不同?
13、IsBackGround 是哪个类的属性?
14、讲解一下Task 这个类型
15、谈谈Finally 和finallize 的区别
16、执行String str="xxx"+"yy"+"zz";所分配的内存
17、struct 和 class 的区别,简单描述它们的相同点、不同点,以及在内存中的分配
18、datareader 和dataset 有什么区别
19、什么是虚函数? 什么是抽象函数?
20、什么是overriding 与overloading
21、c#中 property 与attribute 的区别,它们各有什么用处?这种机制的好处?
22、C#可否直接对内存进行操作?
23、利用递归 实现 1,1,2,3,5,8,13, 数组,求出第30个数是多少
24、实现猫叫, 老鼠跑, 主人醒 的程序
答案:
1、如果你需要使用一个对象,这个对象需要占用很多紧缺的资源,使用完成后需要马上释放掉的话,建议使用using语句
这样写是为了避免资源释放不及时导致的冲突或性能问题。是确保正确使用 IDisposable 对象的方便语法。
IDisposable 定义了一种释放分配资源的方法。可以通过 继承idisponsable接口 使用using来调用disponse()方法
2、在.NET的对象中实际上有两个用于释放资源的函数:Dispose和Finalize。Finalize的目的是用于释放非托管的资源,而Dispose是用于释放所有资源,包括托管的和非托管的。
3、不可以
4、弱签名的程序集只能被部署为私有的,强签名的既可以部署为私有的,也可以部署为公有的。
5、接口不能声明字段,接口的方法前面不能有public 等修饰符,且方法后面不能带有{},抽象方法(属性)没有函数体,基类必须实现抽象类的所有抽象方法(属性),静态成员不能使用abstract
6、进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位 一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执
进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
7、索引器类似于属性, 使用 public 类型 this [参数]{ get; set;}
8、在公共语言环境下运行的代码,
9、不懂
10、接口不能有静态方法,可以有静态属性,抽象类可以包含静态方法,但是该静态方法必须是非抽象的
11、数组有length属性,string也有length属性
12、sleep是线程被调用时,占着cpu去睡觉,其他线程不能占用cpu,os认为该线程正在工作,不会让出系统资源,wait是进入等待池等待,让出系统资源,其他线程可以占用cpu,一般wait不会加时间限制,因为如果wait的线程运行资源不够,再出来也没用,要等待其他线程调用notifyall方法唤醒等待池中的所有线程,才会在进入就绪序列等待os分配系统资源,
13、Thread类,表示是否在后台运行
14、不知道task是什么东西
15、finally是异常处理语句结构中,表示总是执行的部分。
finallize表示是object类一个方法,在垃圾回收机制中执行的时候会被调用被回收对象的方法
16、不知道。
17、值类型和引用类型的区别
18、datareader 始终占用连接,对数据的操作不能传回数据库
19、虚函数在继承类中必须有实现部分,抽象函数没有提供实现部分,虚函数是一种强制派生类覆盖的函数,否则继承类将不能被实例化。
20、。。。
21、属性和特性
22、通过使用 unsafe 关键字,可以定义可使用指针