各位同学:
大家好!
这次上机的主要任务是继续研究方法(Methods)的相关内容,同时掌握数组的使用。
1. 研究scoping,了解以下事实:
a.C#中的变量有两种生命期:自动(Automatic)生命期和静态(Static)生命期。局部变量有自动生命期,而静态变量有静态生命期。
b.要改变一个局部变量的值,只能通过两种途径:显式为局部变量赋值,或者将局部变量的引用传递给函数参数。
c.静态变量本质上类似于C++中的全局变量,特别是公有静态变量更是如此。
d.静态变量的初始化工作是在类的静态构造函数中完成的。关于静态构造函数的概念和例子在下一次课中给出。
在类中声明的变量是实例变量.
2. 研究cs092,这是一个在C#程序中使用指针的例子。请完成以下工作。
a.了解事实:在C#中可以使用指针,但不提倡使用指针,指针只可以在非安全代码块中使用。
b.可以对类的对象使用指针吗?将项目pointer中的整型变量改成某个类的对象,看看程序是否能通过编译?
不可以
Error
1
Cannot take the address of, get the size of, or declare a pointer to a managed type ('pointer.A')
E:/Work/MS.NET/C#/第五次上机/cs092/cs092/pointer/Program.cs
14
28
pointer
但struct可以
c.了解事实:用new操作生成一个数据实体时,其返回结果可能是一个引用,也可能是一个值,这取决于new后面跟的数据类型。
class or struct
d.只能在值类型的变量上使用指针,而不能在类对象上使用指针。这是C#对使用指针的限制。具体例子请参考项目
classPtr。
3. 编写一个递归函数,它可以将某个数组中的所有元素反转存储。从中了解递归函数设计的基本要领。
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace ArrayReverse
- {
- class Program
- {
- static void Main(string[] args)
- {
- int<