C#简单的面试题目(二)

16.new 的两种用法

实例化对象  new Class();        隐藏基类方法,即覆盖方法  public  new xxx(){}

17.委托与事件的用法

public delegate void handles();   ////定义委托,返回值为void,没有参数

public event handles eventhandels;  ///定一个委托类型的事件

public void test()

{

  ////another  code

}

Class.eventhandels=new handels(test);

18.传入某个属性的SET方法的隐含参数的名称是什么

value ,它的类型和属性所声明的类型相同。

19.String与StringBuilder类有什么区别?为什么在.NET类库中要同时存在这两个类?

StringBuilder比String更节约内存,所以StringBuilder更快

String对象是不可改变的。每次使用System.String类中的方法之一或进行运算时(如赋值、拼接等)时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。而StringBuilder则不会。在需要对字符串执行重复修改的情况下,与创建新的String对象相关的系统开销可能会非常昂贵。如果修改字符串而不创建新的对象,则可以使用System.Text.StringBuilder类。例如,当在一个循环中将许多字符串连接在一起时,使用StringBuilder类可以提升性能。

20.在C#中,string str=null与string str=""请尽量使用文字或图像说明其中的区别。

string str=null是不给他分配内存空间,而string str=""给它分配长度为空字符串的内存空间。

21.Asp.Net 身份验证方式有那些?分别是什么原理?

Windows(默认)    用IIS……Form(窗体)   用帐户……Passport(密钥)

22.是IIS中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sate Server或SQL Server数据库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件

23.C#可否对内存进行直接的操作?

在.net下,.net引用了垃圾回收(GC)功能,它替代了程序员,不过在C#中,不能直接实现Finalize方法,而是在析构函数中调用Finalize方法。

24.DateTime是否可以为null?

不能,因为其为Struct类型,而结构属于值类型,值类型不能为null,只有引用类型才能被赋值为null

25.DateTime.Parse(myString);这行代码有什么问题?

有问题,当myString不能鳗鱼事件格式要求的时候,会引发异常,建议使用DateTime.TryParse(),DateTime.TryParse()如果转换成功则输出日期,反之失败了,就返回null.

26.C#错误处理机制是

采用try->catc->finally

27.为什么不提倡catch(Exception)

try..catch在出现异常的时候影响性能,应该捕获更具体的异常,比如IOExeception,OutofMemoryException等

28.catch(Exception e){throw e;}和catch(Exception e){throw;}的区别

前者将发生的异常对象抛出,而后者只是抛出异常,并没有抛出原异常对象

29.error和Exception的区别

error表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这种异常。

exception表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生情况。

30.Static和非Static的区别:

一.用Static声明的方法和变量,不需要实例化该类就调用;

二.非Static的,就一定要用实例化的对象来调用,即用new来实例化。

 

 

 

 

 

posted @ 2013-03-31 09:33  aehyok  阅读(1096)  评论(4编辑  收藏  举报