今天下午我参加了一家美国公司在中国办事处招.NET工程师的电话面试,面试官居然是一位女士。刚刚接到电话,听到对方是女士的时候,我突然楞了一下,我在想这位‘女神’好牛掰哦!因为,我工作接近2年的时间中,还真没听过面试官是女士!顿时让我对电话那头的那位女士有种由衷的敬佩之情!
结果,我刚刚接通电话说了句:“您好!”,对方就直接开始问问题了,面试的问题大概就问了以下几个,至于面试官问的这些问题质量如何我就不作评价了!
面试问题如下:
1.C#中如何捕获异常?
2.C#中4大访问权限的区别?
3.数据类型转换:string转换问int
4.重写与重载的区别?
5.在C#的库函数中有没有方法可以判断一个文件是否存在?
6.C#的内建数据类型有哪些?(内建?是我电话中听错了吗?还是真有这个说法啊?希望大神指出来)
7.事件和委托?
接下来,我对这些问题进行一一作答,如有答的不合理的,请大神指出,这样方便我改正学习!先谢谢各位大神了!
1.C#中如何捕获异常?
答:
2.C#中的数据类型?
答:C#中的数据类型可以分为值类型和引用类型。
值类型又可以称为数值类型,其中包含结构类型(Struct Types)和枚举类型(Enum Types);
引用类型包含类类型(Class Types)、对象类型(Object Types)、字符串类型(String Types)、数组类型(Array Types)、接口类型(Interface Types)和代理类型(Delegate Types)。
3.委托和事件
答:委托是一种安全地封装方法的类型,委托是面向对象、类型安全和保险的。委托的类型由委托的名称定义。
例:下面的示例声明了一个名为Del的委托,该委托可以封装一个采用字符串作为参数并返回void的方法。
public delegate void Del(string message);
委托具有以下特点:
.委托类似于C++函数指针,但它是类型安全的。
.委托允许将方法作为参数进行传递。
.委托可用于定义回调方法。
.委托可以链接在一起。例如,可以对一个事件调用多个方法。
.方法不需要与委托签名精确匹配。
.匿名方法允许将代码块作为参数传递,以代替单独定义的方法。
事件是类在发生其关注的事情时用来提供通知的一种方式。
例如:封装用户界面空间的类型可以定义一个在用户单机该控件时发生的事件。控件类不关心单机按钮时发生了什么,但是它需要告知派生类单机事件已经发生。然后,派生类可选择如何响应。
事件使用委托来为触发时将调用的方法提供类型安全的封装。委托可以封装命名方法和匿名方法。
事件具有以下特点:
.事件是类用来通知对象需要执行某种操作的方式
.尽管事件在其他时候(如信号状态更改),事件通常还是用在图形用户界面中。
.事件通常使用委托事件处理程序进行声明。
.事件可以调用匿名方法来替代委托。