C# .net面试题(10道)

本文围绕C#开发语言,涵盖class和struct区别、类成员访问修饰符、面向对象特征、抽象类与接口区别等多个面试常见知识点。详细介绍了值类型和引用类型的判定及区别,还阐述了装箱拆箱、重写重载等概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、 class和struct的区别?

2、 C#中类成员的访问修饰符有哪些?

3、 面向对象的三大特征是什么?/面向过程和面向对象的区别

 4、 抽象类和接口的区别?接口支持多继承;抽象类不能实现多继承。

 5、 接口可以包含哪些成员?

6、 什么是装箱和拆箱?

 7、 C#中,哪些类型是值类型?哪些类型是引用类型?(数据类型)

 8、 值类型和引用类型的区别?

 9、 C#中的基本数据类型有哪些?值类型:

10、 重写和重载的区别?方法的override和overload有什么区别?


1、 class和struct的区别?

Class可以被实例化,属于引用类型
Struct属于值类型


2、 C#中类成员的访问修饰符有哪些?

private : 私有成员, 在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。
internal: 在同一程序集内可以访问。


3、 面向对象的三大特征是什么?/面向过程和面向对象的区别

封装,继承,多态;
面向过程和面向对象都是解决问题的逻辑方法,分析问题既可以用面向对象的方法 来思考,也可以用面向过程方法来解决,但两者还是有一定区别
面向过程:是分析问题并解决问题所需要的步骤,强调是解决问题的步骤。可以先定义多个函数,在使用的时候逐步调用函数即可
面向对象:是把问题分解成多个对象,强调的是解决问题的行为表现


 4、 抽象类和接口的区别?接口支持多继承;抽象类不能实现多继承。


接口只能定义抽象规则;抽象类既可以定义规则,还可能提供已实现的成员。
接口是一组行为规范;抽象类是一个不完全的类
接口可以用于支持回调;抽象类不能实现回调,因为继承不支持
接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含实现的方法;抽象类可以定义字段、属性、包含有实现的方法
接口可以作用于值类型和引用类型;抽象类只能作用于引用类型。
 


 5、 接口可以包含哪些成员?

 
接口可以包含属性、方法、索引指示器和事件,但不能包含常量、域、操作符、构造函数和析构
函数,而且也不能包含任何静态成员


6、 什么是装箱和拆箱?


从值类型转换到引用类型装箱。从引用类型转换到值类型拆箱 


 7、 C#中,哪些类型是值类型?哪些类型是引用类型?(数据类型)


C#的引用类型包括:数组、委托、接口、object、字符串、用户定义的类。
C#的值类型包括:数值类型、结构体、bool型、枚举、可空类型、用户定义的结构体。


 8、 值类型和引用类型的区别?

值类型:占用空间固定、保存与复制的是值本身、使用typeof检测数据的类型、基本类型数据是值类型
引用类型:占用空间不固定、保存与复制的是指向对象的一个指针、使用instanceof检测数据类型、使用new()方法构造出的对象是引用型


 9、 C#中的基本数据类型有哪些?值类型:


有符号整数(由小到大):sbyte、short、int、long 无符号整数(由小到大):byte、ushort、uint、ulong 浮点型:float、double、decimal 布尔型:bool
字符型:char 引用类型:
string、object
 


10、 重写和重载的区别?方法的override和overload有什么区别?


重载:同类同名不同参,属于编译时多态。

重载:是在一个类中定义多个方法名相同的方法,表示一个行为有多种实现方式重写:

同名同参不同类,属于运行时多态。重写是用子类的方法来重写父类的方法,表示相同的方法在父类和子类中具有差异性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值