C#接口、结构体、抽象类、枚举、可空类型相关概念

C#中的接口:

定义一套规则,其他类实现规则。规则===》锲约,合同。
接口必须实现,才能使用。
接口也是多态性的表现。

1、C#接口的概念?

接口:使用java和asp.net等编写的API接口。让其他人通过相应的请求协议(如:http/https)来访问。理解成“在接口服务器上定义多个方法,在客户端上调用这些方法,这样的一个过程,称为请求接口。”。

2、C#里面类和接口的区别?

C#类只能继承一个父类(单继承),但一个类可以实现多个接口。

3、C#里如果一个类,同时实现两个接口,和一个父类,顺序是啥?

先继承类,再实现接口

4、C#里面接口和抽象类的区别?

C#中,接口(Interface)和抽象类(Abstract Class)都用于定义抽象的行为,但它们有不同的应用场景和限制。

接口:
只能定义公共的抽象方法、属性、事件和索引器。
不包含任何实现。
可以被类直接实现。
支持多重继承(通过可继承接口的概念)。
主要用于定义合同,规定类必须实现的行为。

抽象类:
可以包含抽象和非抽象方法。
抽象方法不包含实现,需要在子类中实现。
抽象类不能直接实例化,只能作为基类被继承。
不支持多重继承,但可以通过继承多个接口来实现类似效果。
提供了一种实现抽象的方式,也可以提供具体实现的细节。

5、C#里面结构体的相关细节?

结构即结构体,是值类型数据结构。
结构使用 struct 关键字声明。
结构和类相比,一般保存的数据量少,存储在栈上,读取速度比类快。
结构可带有方法、字段、索引、属性、运算符重载和事件。
结构可定义有参构造函数,但不能定义析构函数和无参构造函数。
结构和类不同,不支持继承。但结构可以实现接口。
结构成员不能指定为 abstract、virtual 或 protected。
当您使用 new 操作符创建一个结构对象时,会调用适当的构造函数来创建结构。与类不同,结构可以不使用 New 操作符即可被实例化。
如果不使用 New 操作符,只有在所有的字段都被初始化之后,字段才被赋值,对象才被使用。
6、C#里面结构和类的区别?
在C#中,结构(struct)和类(class)是两种不同的数据类型,它们有以下区别:
a.结构是值类型,而类是引用类型。这意味着结构直接包含其数据,而类的实例包含对其数据的引用。
b.结构不支持继承,而类可以继承其他类。
c.结构的实例化不需要调用构造函数,而类的实例化需要。
d.结构的构造函数必须包括所有字段的赋值,而类的构造函数不需要。
e.结构不能定义析构函数,而类可以。
f.在方法参数传递时,结构是通过值传递的,而类是通过引用传递的。
g.结构可以实现接口,而类也可以实现接口。
h.结构默认不能初始化为null,但类可以。
i.在性能上,大型结构或经常需要复制的结构使用类可能更为高效,因为类是引用类型,而结构是值类型,复制类的引用比复制结构的数据更加高效。

7、C#里面枚举相关细节?

枚举是值类型。
枚举一般用来命名一组整型常量。
枚举类型是使用 enum 关键字声明。
枚举不支持继承或传递继承。

位标志枚举的要求:Flag特性。

8、C#里面可空类型细节?

可空类型可以让值类型的变量设置成null。
不能从引用类型或其他可空类型创建可空类型。

  • 16
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值