C#相关试题.doc

上传人:飞****9 文档编号:135744959 上传时间:2020-06-18 格式:DOC 页数:50 大小:88.50KB
返回 下载 相关 举报
C#相关试题.doc_第1页
第1页 / 共50页
C#相关试题.doc_第2页
第2页 / 共50页
C#相关试题.doc_第3页
第3页 / 共50页
C#相关试题.doc_第4页
第4页 / 共50页
C#相关试题.doc_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《C#相关试题.doc》由会员分享,可在线阅读,更多相关《C#相关试题.doc(50页珍藏版)》请在金锄头文库上搜索。

1、1.传入某个属性的set方法的隐含参数的名称是什么?value,它的类型和属性所声名的类型相同。 2.如何在C#中实现继承?在类名后加上一个冒号,再加上基类的名称。 3.C#支持多重继承么?不支持。可以用接口来实现。 4.被protected修饰的属性/方法在何处可以访问?在继承或间接继承与这个类的子类中可以访问。 5.私有成员会被继承么?会,但是不能被访问。所以看上去他们似乎是不能被继承的,但实际上确实被继承了。 6.请描述一下修饰符protected internal。 被protected internal修饰的属性/方法只能在它的在同一个程序集(Assembly)中的子类被访问。 7.

2、C#提供一个默认的无参数构造函数,当我实现了另外一个有一个参数的构造函数时候,还想保留这个无参数的构造函数。这样我应该写几个构造函数?两个,一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要手动实现那个无参数构造函数。 8.C#中所有对象共同的基类是什么?System.Object. 9.重载和覆写有什么区别?重载提供了对一个方法签名的不同参数调用的实现。覆写提供了子类中改变父类方法行为的实现。 10.在方法定义中,virtual有什么含意? 被virtual修饰的方法可以被子类覆写。 11.能够将非静态的方法覆写成静态方法么?不能,覆写方法的签名必须与被覆写方法的签名保持一

3、致,除了将virtual改为override。 12.可以覆写私有的虚方法么?不可以,甚至子类中无法访问父类中的私有方法。 13.能够阻止某一个类被其他类继承么? 可以,使用关键字sealed。 14.能够实现允许某个类被继承,但不允许其中的某个方法被覆写么? 可以,标记这个类为public,并标记这个方法为sealed。 15.什么是抽象类(abstract class)?一种不可以被实例化的类。抽象类中一般含有抽象方法,当然也可有具体实现。继承类只有实现过所有抽象类的抽象方法后才能被实例化。 16.何时必须声明一个类为抽象类? 当这个类中包含抽象方法时,或是该类并没有完全实现父类的抽象方法

4、时。 17.接口(interface)是什么?只含有共有抽象方法(public abstract method)的类。这些方法必须在子类中被实现。 18.为什么不能指定接口中方法的修饰符? 接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意义。他们默认为公有方法。 19.可以继承多个接口么? 当然。 20.那么如果这些接口中有重复的方法名称呢? 这种情况中你可以决定如何实现。当然需要特别得小心。但是在编译环节是没有问题的。 21.接口和抽象类的区别是什么? 接口中所有方法必须是抽象的,并且不能指定方法的访问修饰符。抽象类中可以有方法的实现,也可以指定方法的访问修饰符。

5、22.如何区别重载方法? 不同的参数类型,不同的参数个数,不同的参数顺序。 23.const和readonly有什么区别?const关键字用来声明编译时常量,readonly用来声明运行时常量。 24.System.String 和System.StringBuilder有什么区别?System.String是不可变的字符串。System.StringBuilder存放了一个可变的字符串,并提供一些对这个字符串修改的方法。 1.静态成员和非静态成员的区别?2.const 和 static readonly 区别?3.extern 是什么意思?4.abstract 是什么意思?5.interna

6、l 修饰符起什么作用?6.sealed 修饰符是干什么的?7.override 和 overload 的区别?8.什么是索引指示器?9.new 修饰符是起什么作用?10.this 关键字的含义?11.可以使用抽象函数重写基类中的虚函数吗?12.密封类可以有虚函数吗?13.什么是属性访问器?14.abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?15.接口可以包含哪些成员?16.类和结构的区别?17.接口的多继承会带来哪些问题?18.抽象类和接口的区别?19.别名指示符是什么?20.如何手工释放资源?21.P/Invoke是什么?22.StringBui

7、lder 和 String 的区别?23.explicit 和 implicit 的含义?24.params 有什么用?25.什么是反射? 以下是我做的一份参考答案(C# 语言范畴之内),如果有不准确、不全面的,欢迎各位朋友指正!1.静态成员和非静态成员的区别?答:静态变量使用 static 修饰符进行声明,在类被实例化时创建,通过类进行访问不带有 static 修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象进行访问一个类的所有实例的同一静态变量都是同一个值,同一个类的不同实例的同一非静态变量可以是不同的值静态函数的实现里不能使用非静态成员,如非静态变量、非静态函数等示例:us

8、ing System;using System.Collections.Generic;using System.Text;namespace Example01 class Program class Class1 public static String staticStr = Class; public String notstaticStr = Obj; static void Main(string args) /静态变量通过类进行访问,该类所有实例的同一静态变量都是同一个值 Console.WriteLine(Class1s staticStr: 0, Class1.staticS

9、tr); Class1 tmpObj1 = new Class1(); tmpObj1.notstaticStr = tmpObj1; Class1 tmpObj2 = new Class1(); tmpObj2.notstaticStr = tmpObj2; /非静态变量通过对象进行访问,不同对象的同一非静态变量可以有不同的值 Console.WriteLine(tmpObj1s notstaticStr: 0, tmpObj1.notstaticStr); Console.WriteLine(tmpObj2s notstaticStr: 0, tmpObj2.notstaticStr);

10、Console.ReadLine(); 结果:Class1s staticStr: ClasstmpObj1s notstaticStr: tmpObj1tmpObj2s notstaticStr: tmpObj22.const 和 static readonly 区别?答:const用 const 修饰符声明的成员叫常量,是在编译期初始化并嵌入到客户端程序static readonly用 static readonly 修饰符声明的成员依然是变量,只不过具有和常量类似的使用方法:通过类进行访问、初始化后不可以修改。但与常量不同的是这种变量是在运行期初始化示例:测试类:using System

11、;using System.Collections.Generic;using System.Text;namespace Example02Lib public class Class1 public const String strConst = Const; public static readonly String strStaticReadonly = StaticReadonly; /public const String strConst = Const Changed; /public static readonly String strStaticReadonly = Sta

12、ticReadonly Changed; 客户端代码:using System;using System.Collections.Generic;using System.Text;using Example02Lib;namespace Example02 class Program static void Main(string args) /修改Example02中Class1的strConst初始值后,只编译Example02Lib项目 /然后到资源管理器里把新编译的Example02Lib.dll拷贝Example02.exe所在的目录,执行Example02.exe /切不可在ID

13、E里直接调试运行因为这会重新编译整个解决方案! /可以看到strConst的输出没有改变,而strStaticReadonly的输出已经改变 /表明Const变量是在编译期初始化并嵌入到客户端程序,而StaticReadonly是在运行时初始化的 Console.WriteLine(strConst : 0, Class1.strConst); Console.WriteLine(strStaticReadonly : 0, Class1.strStaticReadonly); Console.ReadLine(); 结果:strConst : ConststrStaticReadonly : StaticReadonly 修改后的示例:测试类:using System;using System.Collections.Generic;using System.Text;namespace Example02Lib public class Class1 /public const String strConst = Const; /public static readonly String strStaticReadonly = StaticReadonly; publ

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号