C#复习题 下载本文

内容发布更新时间 : 2024/12/23 9:19:18星期一 下面是文章的全部内容请认真阅读。

1、简述private、protected、public、internal修饰符的作用

private只有在声明他们的类和结构体中才可访问 Protected在它的类中或派生类中访问 Public对访问成员没有限制

Internal对同一项目的文件中,内部类型或成员才是可访问的

2、 值类型和引用类型的区别,结构体与类的区别

值类型的值是存放在堆栈中的,改变其值,不改变变量原有的值,而引用类型的值是存放在栈中的,其引用的地址是存放在堆栈中的,改变其值也就改变了变量原有的值。值类型不允许包含null值,然而可空类型可以将null赋值给值类型。,类属于引用类型的数据类型,结构体属于值类型的数据类型,这两种数据类型的本质区别主要是各自指向的内存位置不同

3、C#中的接口、类、抽象类的有什么不同

接口是一种契约,是不可实例化的,并且可以继承多个接口,类可以继承多个接口,类只能单继承类,接口中不可有方法体,并且不能指定修饰符。

抽象类是类的一种特殊形式 抽象类中可以有方法的实现,也可以指定方法的访问修饰符。但不能实例化

4、简述一下static修饰符的有关功能

被static修饰的成员不能通过实例来访问 a、修饰字段,表示只有一个副本

b、修饰方法,表示此方法于实例无关的,应该是线程安全的 c、修饰类,表示此类是静态类,此类不能实例化

d、修饰构造函数,表示此构造函数在实例化,或第一此调用静态成员时调用,只调用一次。

5、说明一下new修饰符有关用处?

1、实例化如:New Class() 2、public new 隐藏基类的方法

3、在泛型类申明中的任何类型参数都必须有公共的无参构造函数 6、使用sealed、virtual、override、abstract修饰的类有什么特点?

sealed表示不可继承的

virtual表示虚方法,可被覆盖 override,覆盖基类方法

abstract表示抽象方法,该类不可实例化

7、如何区别重载方法?

不同的参数类型,不同的参数个数,不同的参数顺序

8、.override与重载的区别

重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要 Override 是进行基类中函数的重写。为了适应需要。

9、在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?u using 引入名称空间或者使用非托管资源 new 新建实例或者隐藏父类方法

10、请列出c#中几种循环的方法,并指出他们的不同 A:4种:

For :使用于确定次数的循环

Foreach:使用于遍历的元素 只读

Do…while: 次数不确定条件随机变化但至少要保证能被执行一次 While:次数不确定 条件随机 变化

11、有哪些主要的数据类型?它们之间是怎样进行相互转换的?

值类型包括整数类型、字符类型、浮点类型、布尔类型、结构类型和枚举类型。引用类型包括类、接口、委托、数组、字符串等。

C#中提供了隐式类型转换和显式类型转换。 12、 类和对象的区别和关系是什么?

类是对象的抽象,它为属于该类的全部对象提供了统一的抽象描述。关系类是对象的模板,对象是类的实例。

13、 静态字段与非静态字段有什么区别?

加static修饰字段时,则该字段为静态字段,静态字段不属于某个实例对象,只与类相关联,因此,对静态字段的访问只与类关联,访问时使用类名.字段,实例字段的访问与实例对象关联,访问时使用对象名.字段。

14、 接口声明主要由几部分组成,各部分的作用是什么?

接口声明形式:访问修饰符 interface 接口名

其中:接口的访问修饰符有new、public、protected、internal和private,各个修饰符都代表不同的访问权限。new修饰符仅允许在类中定义的接口内使用,它指定接口隐藏同名的继承成员。public、protected、private和internal修饰符用于控制接口的可访问性,与前面所介绍的意义相同。接口名称通常以I开头。要实现该接口,必须有类继承该接口。

15、在某些场合中,使用接口继承而不是类继承,为什么?

程序需要许多彼此无关的对象类型来提供特定功能,此时更适合使用接口 接口可以在基类不同的类之间实现多态性

接口比基类更加灵活,因为可以定义实现多个接口的单个实现 若不需要从基类继承实现,则接口是更好的选择 若不能使用类继承,则可以使用接口

16、C#中处理异常采用的结构化异常处理语句有哪些?并简要说明。

C#中共包含3种结构化异常处理语句:try…catch语句,try…finally语句和try…catch…finally语句。其中:try块语句中用来指明有可能出现异常的代码;catch块内指明对所出现的异常的处理,若没有异常,则catch块不执行;finally块是无论是否发生异常均要执行的代码,主要用来清理资源或执行要在try块末尾执行的其它操作,或不需要清理代码,则可

以不使用该块。

17、 什么是继承?

继承是这样的一种能力,它可以使用现有类的所有功能,并且在无须重新编写原来的类的情况下对这些功能进行扩展。使用继承而产生的类被称为派生类或子类,被继承的类称为基类或父类。

18、什么是多态性?

继承使得在原有的类基础之上,对原有的程序进行扩展,从而提高程序开发的速度,实现代码的复用。同一种方法作用于不同对象可以产生不同的结果,这就是多态性。C#中的多态包括两类:编译时多态性和运行时的多态性。

1、完下列语句后,x和y各为何值? ① int x=20;

int y=++x; X=__21__,y=___21__ ② int x=- 10;

int y=(x>=1)? 100:10; X=_-10___,y=__10_ ③ int x=100;

int y=(x= =1)?++x:x++; X=_100___,y=_101____

2、执行以下程序段后,变量x的值是 6 ,变量y的值是 20 。 int x = 5, y = 10; if (x <= 10 && y >= 10) {

x++; y += 10; } else {

x--; y--; }

3、分析下面这段代码,执行后count的值为________15__________。

int i, j ,count=0; for(i=3;i>0;i--)

for(j=0;j<5;j++) { count++; }

4、 执行下面的程序段后,变量a、b的值分别为____1___1______ 。 int x = 2, a = 0, b = 0; switch (x) {

case 0: