装箱、拆箱以及结构体本身的一些方法
前一章我们讲了一下值类型和引用类型这一个概念,在这里我就要为大家讲一下装箱与拆箱了。我也和大家说了,C#的原子类型实际上是Object,其他的所有东西都是由Object派生得到的。
装箱以及拆箱实际上是针对值类型和引用类型的互相转化而设计的。
装箱是指值类型转化成引用类型的过程,也就是T -> object的过程(这里的T代表所有的值类型)
而拆箱实际上就是object -> T的过程(这里的T代表所有的值类型)
装箱与拆箱的应用
装箱与拆箱在事件里面用的比较广泛,所以了解一些实质会比较方便理解这些事件。
一般而言,事件都会存在一个名叫sender的object类型的变量以及代表事件参数的EventArgs,sender是传递这个事件触发者,而EventArgs则告诉我们Sender触发了怎样的东西。
因为Sender实际上是装箱的一个类,所以我要使用的时候首先会拆箱,或者使用as关键字。之后再进行相应的处理
关于结构体的其他一些内容:
我们首先讨论一个问题:
假设我需要做一个程序,专门收集学校的教务网站,获取自己的学习成绩。在网页中,所有内容都是以文本+标记的形式存在的,如果我找到了一个表示数字的string,我想把它保存到一个int类型里面,这时候怎么办呢?
聪明的你肯定会说,我用Convert.ToInt32就好了,然而实际上很多时候不需要Convert,你用到的结构体或者类大多都会提供一些方法让你尝试转换。
就比如说int.Parse(),它提供一个方法让你能够将字符串里面的数字转化为等效的整数形式,这比直接使用Convert更加方便一些。
时间: 2024-10-29 19:11:25