关于作用域的问题

endlessJuly 2010-09-29 01:40:50
窗体应用程序,
类 Opponent
构造函数为:

public Opponent(Location myLocation)
{
this.myLocation = myLocation;
myRandomizer = new Random();
}

窗体中的函数为

public partial class Form1 : Form
{
Opponent player;//player对象

public Form1()
{
InitializeComponent();
CreateObject();
player = new Opponent(frontYard);//实例化
}

private void CreateObject()
{
//player = new Opponent(frontYard);//为什么在这里不行?
}
}


按照以上代码执行就没有问题,
可如果我在CreateObject()中实例化player,在Form1()中只是通过CreateObject(),编译的时候可以通过
而当运行程序的时候就会出现错误,提示this.myLocation为null
为什么呢?
...全文
122 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
endlessJuly 2010-09-29
  • 打赏
  • 举报
回复
不好意思各位,是我神经大条了。
原来我的frontYard在player = new Opponent(frontYard);之前只做了声明,没有实例化。
ajq1989 2010-09-29
  • 打赏
  • 举报
回复
看不出门道 。
endlessJuly 2010-09-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 huminghua 的回复:]
player = new Opponent(frontYard);//实例化
请问frontYard哪里来的!
[/Quote]

这个都是声明过的,为了把我的问题简化,我都没写出来。
huminghua 2010-09-29
  • 打赏
  • 举报
回复
player = new Opponent(frontYard);//实例化
请问frontYard哪里来的!
@井九 2010-09-29
  • 打赏
  • 举报
回复
觉得没区别
  • 打赏
  • 举报
回复
两个句子对于实例化的执行顺序是不同的

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧