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来实例化。