“.NET面试题经典,涵盖判断题和选择题,涉及接口继承、对象、委托、模板方法、强名称签名、对象克隆、数组使用、集合类型、Wsdl.exe工具以及类的语法合法性。”
在.NET面试中,掌握以下知识点至关重要:
1. **接口与类的继承**:接口可以被多重继承,而类只能单继承。这是.NET框架中的多态性和面向接口编程的一个关键特性。接口提供了一种方式来定义多个类必须实现的方法,但不提供具体实现。
2. **万物皆对象**:在面向对象编程(OOP)中,任何事物都被视为对象。这基于OOP的基本原则,即所有数据都可以表示为对象,每个对象都有其属性和行为。
3. **委托的理解**:在.NET中,委托是一种类型安全的函数指针,实际上它声明了一个方法签名。委托可以用来封装一个或多个方法,允许你在代码中传递方法作为参数,实现事件处理和其他回调机制。
4. **TemplateMethod模式**:这是一个设计模式,它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。这使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。在.NET中,通常通过虚方法或抽象方法实现这一模式。
5. **boxing与unboxing**:boxing是值类型到引用类型的转换,反之则是unboxing。当值类型变量赋值给Object类型时,会发生boxing;从Object类型转换回值类型则发生unboxing。
6. **强名称签名的Assembly**:强名称包括了文件名(包括扩展名)、版本信息、区域性信息以及公钥。这些信息用于确保程序集的完整性和可验证性。
7. **对象的Clone方法**:MemberwiseClone方法创建当前对象的一个浅复制,拷贝所有值类型域成员的值,并为引用类型生成新对象的引用,而不是深拷贝。
8. **数组的使用**:正确的数组声明和初始化方式包括:A选项是单维数组的初始化,B选项是二维数组的初始化,C选项是 jagged array(不规则数组)的声明,D选项是数组的填充。
9. **有增量因子(GrowFactor)的集合类型**:ArrayList、Hashtable和Queue是具有自动调整容量能力的集合类型,当存储元素超出当前容量时,它们会根据GrowFactor增加内部容量。SortedList和Stack没有内置的GrowFactor,但它们会在需要时自动调整大小。
10. **Wsdl.exe工具**:此工具从WSDL文件、XSD架构和.discomap生成代码,为客户端提供代理类,便于调用XML Web Service。生成的代码使用Proxy模式,使得客户端能够透明地与服务交互。
11. **类的语法合法性**:在给出的代码段中,`Person p = new Person();`或`Teacher t = new Teacher();`是在//pointx处的合法声明,表示实例化Person或Teacher类的对象。
以上知识点是.NET面试中的常见问题,深入理解并掌握这些概念对于.NET开发者来说非常重要,能够帮助求职者在面试中表现出色。