Unity C#面试题

1.一个完整的C#控制台程序包括哪些必要的组成部分?

Properties:属性,在Assembly Info 中可以设置应用程序的版本号,作者信息。
引用:默认情况下,项目引用了System,System.Data和System.XML 3个命名空间,这三个命名空间包括了最常见的类和函数。
Program.cs:项目默认建立,是项目的运行入口。

2.有哪些主要的数据类型,他们之间是怎样转换的?

引用类型和值类型,引用类型转换为值类型是通过拆箱的操作进行转换,值类型到引用类型则是通过装箱操作转换为引用类型。

3.类和对象的区别?

类是对一种事物的定义,对象则是一种具体的事物。对象是类的实例,类不可以直接使用,对象可以。

4.静态字段和非静态字段的区别?

静态字段可以直接以类"."字段直接使用,非静态字段必须通过实例才可以使用。

5.接口声明主要有几部分组成?

访问修饰词,关键字(interface),接口名

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

使用多继承时,可以使用接口。不能使用类继承的时候,则使用接口。不需要从基类继承实现使用接口。

7.什么是异常?异常有什么用?

异常是错误的一种,它的结果是导致程序不能正确运行。当抛出异常后,程序不正常停止。如果可以俘获异常并处理,可以增强程序的健壮性。

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

try{}cathc 语句,try…finally ,try…catch…finally
try:用来指明可能出现异常的代码
catch:catch块内指明对所出现的异常的处理
finally:指不管有没有异常都会执行的部分,用来清理资源,或者处理try末尾执行的操作。

9.内存一般分为什么区域?

全局数据区:存放全局变量,静态数据,常量
代码区:存放所有的程序代码
栈区:存放为运行而分配的局部变量,参数,返回数据,返回地址。
堆区:存放程序动态分配的内存。
栈内存是由于系统自己分配和释放的,而堆内存要由程序员自己全权控制,否则会出现内存泄漏。

10.重载的原因

1.传递方式
2.参数类型不同
3.参数个数不同
4.参数顺序

11.readOnly和const区别

1.const字段只能在该字段声明的时候初始化,readOnly字段可以在声明时构造函数初始化。
2.const字段时编译时常数,readonly字段时运行时常数。
3.const默认是静态的,而readonly如果设置成静态就必须显示声明。
4.const对于引用类型的常数,可能值只能是string和null,readonly可以是任何类型。

12.类的声明一般形式是什么?

访问修饰符+class + 类明 + {}

13.什么是继承

可以使子类拥有父类的所有功能,在无须更改的情况下对其进行拓展和修改方法

14.什么是多态

一个方法作用于不同对象拥有不同表达方式的多种形态

15.C#定义了几种类的访问修饰符

public : 公开的
protected :受保护的,只当前类与子类可以使用
private : 私有的,在类中访问
internal : 当前程序集
protect internal : 在本类和当前程序集中的子类访问

16.override 和 重载的区别

重载是相同的名称的方法,参数或参数类型不同,进行重载以适应不同的需要
override 是进行方法的重写

17. 面向对象的思想的三个基本特征

封装:用一个框架把数据和代码组合在一起,形成对象
继承:是子类拥有父类的所有方法
多态:一个方法作用于不同的对象,可以有不同的表达方式

18. sealed 修饰符有什么特点

sealed修饰符修饰类,该类不可被继承。密封方法会重写基类中的方法,但其本身不能在任何派生类中进行重写。当应用于属性和方法时,sealed必须与override一起使用

19.什么是装箱和拆箱

从值类型转换为引用类型为装箱,从引用类型转换为值类型为拆箱

20.根据get和set访问器是否存在,属性分为哪几种类型

只读,只写,可读可写

21.属性主要用于哪些情况

C#中提供了属性来实现安全性,C#通过属性特性写入和读取字段,来保护字段,属性是类内部封装的体现

22.类所包含的成员种类有哪几种

字段,属性,方法,构造方法,常量,事件,索引等

23.C#方法有哪4种类型的参数

值类型参数,引用类型参数,输出参数,数组参数

24.如何区别重载方法

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

25.索引器与属性的主要差别是什么

索引器与属性类型,都可以使用get和set定义索引元素的读写权限,与属性不同的是索引器有索引参数

26.构造方法有哪些特征

与类名相同,没有返回值,系统自动调用

27.结构化异常处理捕获异常的原则是什么

先捕获特殊异常,再捕获普通异常

28.简述变量的命名规则

由字母或下划线开头,可以有数字,字母,下划线,不能使用关键字。使用帕斯卡或驼峰命名规范

29.简述C#中编译时的多态性和运行时多态性的区别

编译时的多态性是由方法重载所实现的,运行时的多态性是根据不同的情况决定哪种操作。C#中运行的多态通过虚方法实现

30.什么是构造函数重载

构造函数可以有参数也可以无参数,有参时根据参数的类型不同,个数不同,顺序不同

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值