面试——C#,什么是泛型,其装箱拆箱和传统类型有什么区别,泛型类继承怎么表示

什么是泛型:

泛型允许延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法。

其装箱拆箱和传统类型有什么区别:

装箱:值类型转引用类型。开辟一块内存空间进行存放数据。

拆箱:引用类型转值类型。

泛型对装箱拆箱的影响在集合的应用上有巨大的体现,

诸如用 ArrayList 来储存 int 数据和用 List<int> 来储存 int 数据。未使用泛型的 ArrayList 在每次存新数据时都会有从 int 到 object 的装箱操作,每次读取时都会有拆箱操作,而使用泛型的 List<int> 不需要这些操作,也就避免了这方面的性能消耗。

泛型类继承怎么表示

这是我确实在面试中碰到的一问,我想出题者可能是要问泛型的约束

原问题:写一个泛型类 C 使其继承自 CBase

public class CBase
{

}

public class C<T> : CBase
{
    public T t;
}

public class C1<T> where T : CBase
{
    public T t;
}

不管是要求 C 继承自 CBase 还是要约束泛型 T 继承自 CBase 都是很好写的

泛型的约束就是在定义结构后面加 where 关键字,然后写继承关系就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值