-
. z.
程序员常见面试题
-
. z.
一、 C* 1. 请解释在new 与override的它们存储在另一值类型或对象的字段中。值类型没有与存储类的实例相关的系统开销,并且它们不需要构造函数。值类型可以有字段、属性和事件。它们也有静态和非静态方法。当它们被装箱时,会从 继承虚方法,并可实现零个或更多接口。值类型是密封的,这意味着不能从它们派生出其他类型。但是,可以直接对值类型定义虚方法,并且既可对该类型的已装箱形式,也可对未装箱形式调用这些方法。尽管不能从一种值类型派生出另一种类型,但是当所用语言处理虚方法比处理非虚方法或静态方法更方便时,可以对值类型定义虚方法。 引用类型的变量又称为对象,可存储对实际数据的引用。以下用于声明引用类型的关键字: " class " interface " delegate 8. 构造体是值类型还是引用类型的. 是值类型。 9. C*中有没有静态构造函数,如果有是做什么用的. 有. 静态构造函数用于初始化类。在创立第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。静态构造函数既没有访问修饰符,也没有参数。在创立第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。无法直接调用静态构造函数。在程序中,用户无法控制何时执行静态构造函数。静态构造函数的典型用途是:当类使用日志文件时,将使用这种构造函数向日志文件中写入项。 10. 在C*中如何实现多态. "多态性"指定义具有功能不同但名称一样的方法或属性的多个类的能力,这些类可由客户端代码在运行时交换使用。大局部面向对象的编程系统都通过继承提供多态性。基于继承的多态性涉及在基类中定义方法并在派生类中使用新实现重写它们。 11. . 反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创立类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。通过反射命名空间中的类以及 ,您可以获取有关已加载的程序集和在其中定义的类型〔如类、接口和值类型〕的信息。您也可以使用反射在运行时创立类型实例,然后调用和访问这些实例。 12. 请解释流与文件有什么不同. 文件是一些具有永久存储及特定顺序的字节组成的一个有序的、具有名称的集合。因此,对于文件,人们常会想到目录路径、磁盘存储、文件和目录名等方面。相反,流提供一种向后备存储器写入字节和从后备存储器读取字节的方式,后备存储器可以为多种存储媒介之一。正如除磁盘外存在多种后备存储器一样,除文件流之外也存在多种流。例如,还存在网络流、存流和磁带流等。 13.程序集与命名空间有什么不同. 命名空间是用于防止命名冲突,专用于组织代码,当代码要在其他*个应用程序中重用时,可以降低复杂性。程序集是重用代码的一种方式 不同: 可以将一样命名空间中的类部署到不同的程序集中,也可以命名空间中的类部署到一个程序集中 命名空间程序集 有逻辑编译时机制 有物理编译时机制 不是运行时实体 是运行时实体 为源代码元素的名称
程序员常见面试题 来自淘豆网www.taodocs.com转载请标明出处.