北大青鸟6.0 .Net 第二章理论课后习题详解:值类型与引用类型

需积分: 10 1 下载量 161 浏览量 更新于2024-09-11 收藏 146KB DOC 举报
本资源是一份北大青鸟6.0 .Net第二章理论课程的课后作业,主要涉及C#编程语言的基础概念和实践。以下是详细的知识点总结: 1. 值类型与引用类型:C#中,值类型如`bool`是存储变量实际值的,而`string`、`Array`等是引用类型,它们存储的是指向值的内存地址。`enum`本质上也是值类型。值类型与引用类型的转换中,从值类型到引用类型的操作被称为装箱(boxing),反之则是拆箱(unboxing)。 2. 结构:结构是一种轻量级的类,与类不同,结构是值类型,定义结构时不需使用`new`关键字,但可以为字段赋初始值。结构可以包含属性和方法,但没有默认的公共构造函数。 3. 类的静态成员:静态成员属于类本身,而非特定实例,可以通过类名直接访问。静态方法不能直接调用实例方法,必须先创建一个实例。`static`是静态成员的定义关键字。 4. 装箱和拆箱示例:代码中,将整型变量`inti`赋值给`object`类型的`obj`,涉及一次装箱(将`int`转换为`object`)。接着,将`obj`强制转换回`int`,即进行了一次拆箱。因此答案是A.1次装箱,1次拆箱。 5. 结构体实例共享:在`classTest`中,`size1`和`size2`都引用了相同的`Size`结构体实例,当`size1.y`被修改时,`size2.y`也会改变,因为它们共享同一个内存地址。所以输出结果是`200|200`。 6. 访问修饰符:在C#中,如果没有显式指定访问修饰符,类成员的默认访问级别是`private`,这意味着只有该类内部可以访问。 7. 函数参数传递:在提供的代码段中,`Sub(out m, n)`是一个带`out`参数的函数,`out`参数表示函数会修改该参数的值,因此`Sub`执行后,`m`会被更新为`n`的值,即`m=200`。由于`n`的值未做任何改动,所以`n`保持为200。最终输出是`100|200`。 通过这些题目,学生可以巩固C#中的基本概念,包括数据类型、结构、访问修饰符以及函数参数传递的理解。完成这些习题有助于提高他们的编程实践能力和理论水平。