C#-基础-面试题什么是装箱和拆箱?答:装箱就是把值类型转成引用类型:装箱就是把值类型(包括int与结构这样的内置类型)转换为object类型,拆箱就是把引用类型转换为值类型,装箱与拆箱实现了两种类型的互换;对象和类的区别是什么?答:“类”(Class),仅仅是模板对象是一个你能够看得到、摸得着的具体实体什么是类的方法?答:类是由一组具有相同属性和共同行为的实体抽象而来,对象执行的操作通过编写类的方法来实现。可见,类的方法是一个功能模块,作用是“做一件事”。什么是局部变量,什么是成员变量?答:局部变量是指一个方法中定义的变量;成员变量是指在类范围里定义的变量,也就是之前讲过的属性。静态成员和实例成员的区别?答:使用static修饰的成员称为静态成员,使用实例对象调用的成员称为实例成员概述序列化答:序列化是将对象的状态存储到特定存储介质中的过程。反序列化则是从特定存储介质中的数据重新构建对象的过程类成员有几种可访问形式?简述可访问形式修饰符的访问权限。答:可访问形式有private、protected、public、internal;public(公共的)完全公开,访问不受限制。protected(保护的)访问仅限于包含类或从包含类派生的类型。该类内部和继承类中可以访问。internal(内部的)访问仅限于当前程序集。在同一命名空间内可以访问。protectedinternal(内部保护的)访问仅限于从包含类派生的当前程序集或类型。private(私有的)访问仅限于包含类型。在类的内部才可以访问。继承的特点有哪些?答:C#继承通过:关键字来实现,实现继承的类被称为子类,被继承的类被称为父类,有的也称为基类、超类。父类和子类的关系是is-a的关系,即子类is-a父类。传入某个属性的set方法的隐含参数的名称是什么?答:隐含参数的名称是value,它的类型和属性所声名的类型相同。如何在C#中实现继承?答:在类名后加上一个冒号,再加上基类的名称。对象能否调用静态方法?答:不能。对于类内部定义的静态变量及静态方法,该类的对象均不能调用。C#支持多重继承么?答:类之间不支持多重继承,接口之间支持。类对接口叫做实现,不叫继承。被protected修饰的属性/方法在何处可以访问?答:在继承或间接继承与这个类的子类中可以访问。私有成员会被继承么?答:会,但是不能被访问。所以看上去他们似乎是不能被继承的,但实际上确实被继承了。C#提供一个默认的无参数构造函数,当我实现了另外一个有一个参数的构造函数时候,还想保留这个无参数的构造函数。这样我应该写几个构造函数?答:两个,一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要手动实现那个无参数构造函数。C#中所有对象共同的基类是什么?答:,virtual有什么含意?答:被virtual修饰的方法可以被子类覆写。能够将非静态的方法覆写成静态方法么?答:不能,覆写方法的签名必须与被覆写方法的签名保持一致,除了将virtual改为override。答案并没有大错,只是静态方法根本无override概念,属于引起困惑的问题。可以覆写私有的虚方法么?答:不可以,甚至子类中无法访问父类中的私有方法。能够阻止某一个类被其他类继承么?答:可以,使用关键字sealed。还可以将所有构造函数的访问级别都设为Private或子类无法访问到的其他级别(Assembly外的iternal),也有同样的效果。能够实现允许某个类被继承,但不允许其中的某个方法被覆写么?答:可以,标记这个类为public,并标记这个方法为sealed。何时必须声明一个类为抽象类?答:当这个类中包含抽象方法时,或是该类并没有完全实现父类的抽象方法时。接口(interface)是什么?答:只含有抽象方法(publicabstractmethod)的类。这些方法必须在子类中被实现。为什么不能指定接口中方法的修饰符?答:接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意义。他们默认为公有方法。那么如果这些接口中有重复的方法名称呢?答:这种情况中你可以决定如何实现。当然需要特别得小心。但是在编译环节是没有问题的。如何区别重载方法?答:不同的参数类型,不同的参数个数,不同的参数顺序。const和readonly有什么区别?答:const关键字用来声明编译时常量,readonly用来声明运行时常量。还有一些区别,当应试者提到时你不能说是错的:作字段时const隐含静态,const可以是局部的,readonly可以在构造函数中初始化等。?答:
C#-基础-面试题 来自淘豆网m.daumloan.com转载请标明出处.