任务 2 – 重新组织代码
当开发进行到一定时候,我们就会考虑将SimpleStack从SimpleDataStructures.Tests项目移动到SimpleDataStructures项目,并需要适当修改其命名空间。我们可以从VS提示SimpleStack类未被识别的时候就将SimpleStack文件放置于目标项目,就如之前任务3 所说的那样,通过Generate new type...的选项来确定类的项目位置。但我们为了从最简单出发,让VS使用默认的创建方式,直接在测试项目创建了该类。
- 在VS的Solution Explorer,从SimpleDataStructures.Tests项目选择SimpleStack.cs 文件,右键点击选择Cut ,并右键点击SimpleDataStructures项目,选择Paste
- 打开SimpleStack.cs文件,调整它的命名空间为SimpleDataStructures 。按Ctrl+S 保存。
namespace SimpleDataStructures
- 回到测试方法,留意很多地方出现红色标记错误。再回到SimpleStack.cs文件,看看类定义和方法定义。当VS创建一个新类的时候,如果它是顶级类(不是内嵌到其它类中),默认的访问是internal ,也就是只允许相同命名空间范围内的其它成员访问。同时,Push方法和Pop方法也是internal访问。为了使测试项目能够访问到这个类,需要修改访问修饰符:添加public 到类定义:
namespace SimpleDataStructures
{
public class SimpleStack
{
…
}
}
- 还要修改方法的访问,修改internal为public
public void Push(int p)
{
_items.Add(p);
}
public int Pop()
{
int value = (int)_items[0];
_items.RemoveAt(0);
return value;
}
- 最后,要在SimpleDataStructures.Tests测试项目中添加SimpleDataStructures项目引用
- 运行所有测试,看看是否全部成功!