我定义了一个接 ICommand,里面有几种方法,我在它的几个派生类里分别实现了,现在问题是,我在测试代码中,测试时碰到了问题,
private ICommand aCommand ;
private CCreateLine creLine = new CCreateLine();//CCreateLine 是继承了ICommand 接的类
用下面这个方法:
private void menuItem2_Click(object sender, System.EventArgs e)
{
aCommand = creLine;
}
就会报错:“ 未将对象引用设置到对象的实例。”
但是我在窗体的Lode事件中写,如下:
private void Form1_Load(object sender, System.EventArgs e)
{
aCommand = creLine;
}
则可以顺利运行。注:我是想通过不同的Click事件来设置不同的aCommand的值,比如:
private void menuItem3_Click(object sender, System.EventArgs e)
{
aCommand = creCircle;//creCircle也是一个实现了aCommand 接口的类的实例
}请问高手,这是什么问题,该如何解决?
private ICommand aCommand ;
private CCreateLine creLine = new CCreateLine();//CCreateLine 是继承了ICommand 接的类
用下面这个方法:
private void menuItem2_Click(object sender, System.EventArgs e)
{
aCommand = creLine;
}
就会报错:“ 未将对象引用设置到对象的实例。”
但是我在窗体的Lode事件中写,如下:
private void Form1_Load(object sender, System.EventArgs e)
{
aCommand = creLine;
}
则可以顺利运行。注:我是想通过不同的Click事件来设置不同的aCommand的值,比如:
private void menuItem3_Click(object sender, System.EventArgs e)
{
aCommand = creCircle;//creCircle也是一个实现了aCommand 接口的类的实例
}请问高手,这是什么问题,该如何解决?
解决方案 »
- c#实现游戏后台挂机的功能是不是都用sendmessage或者postmessage
- c#.net的论坛源码,类似于动网的要能用的。
- 关于数据绑定到Ilist<string>的问题
- 请教c#高手,常规软件编辑功能的实现问题
- 如何在程序中以管理员身份登陆windows
- .Net调用.Net编写的COM组件出错。在线等!
- ★★--程序中如何打开一个已经存在得窗体?--★★
- 关于C#的winform的一个简单问题。
- datatable与checkbox问题
- listview中的SORT是按照第一列的字段进行排序的,如果要根据其他COLUNM的字段排序呢?就是要点击不同列,都有自己的排序方法,怎么做啊
- 如何让一个窗体始终显示在另一个窗体之上?
- crystallreport 注册码!!
我仔细想了一下,private ICommand aCommand,这样是不是只声明了这个接口,并没有实例化,而下面的这个方法才将它实例化了
private void menuItem2_Click(object sender, System.EventArgs e)
{
aCommand = creLine;
}
因为我重写了窗体的OnMouseDown事件,所在窗体初始化的过程中就执行了含有aCommand 的指令,然而aCommand 它本身却没有实例化,但是如果在窗体的Lode事件将它实例化的话,那么它可以执行了!
不知道这样想对不对?
{
aCommand = creLine;
}
这里不会报错,可能是你以后的调用出错。