网上找监控变量变化的代码,结果有段代码被人贴来贴去:
public class Program
{
//需要监控的字段
private int myValue; //属性设置,此处调用了事件触发函数
public bool MyValue
{
get { return myValue; }
//这里报错 Error 3 Cannot implicitly convert type 'int' to 'bool'
// C:\Users\vpoint\documents\visual studio 2010\Projects\拖放窗体\拖放窗体\MainWindow.xaml.cs 252
// 26 拖放窗体 set
{
//如果变量改变则调用事件触发函数
if (value!=myValue)
{
WhenMyValueChange();
}
myValue = value;
}
} //定义的委托
public delegate void MyValueChanged(object sender, EventArgs e);
//与委托相关联的事件
public event MyValueChanged OnMyValueChanged; //构造函数初始化初值并绑定一个事件处理函数
public Program()
{
myValue = 0;
OnMyValueChanged += new MyValueChanged(afterMyValueChanged); } //事件处理函数,在这里添加变量改变之后的操作
private void afterMyValueChanged(object sender, EventArgs e)
{
//do something
} //事件触发函数
private void WhenMyValueChange()
{
if (OnMyValueChanged != null)
{
OnMyValueChanged(this, null);
}
}
}然后这个地方报错: get { return myValue; }
//这里报错 Error 3 Cannot implicitly convert type 'int' to 'bool'
// C:\Users\vpoint\documents\visual studio 2010\Projects\拖放窗体\拖放窗体\MainWindow.xaml.cs 252
// 26 拖放窗体
郁闷死了,完全不知道怎么回事,搜来搜去都是这么一段代码..
public class Program
{
//需要监控的字段
private int myValue; //属性设置,此处调用了事件触发函数
public bool MyValue
{
get { return myValue; }
//这里报错 Error 3 Cannot implicitly convert type 'int' to 'bool'
// C:\Users\vpoint\documents\visual studio 2010\Projects\拖放窗体\拖放窗体\MainWindow.xaml.cs 252
// 26 拖放窗体 set
{
//如果变量改变则调用事件触发函数
if (value!=myValue)
{
WhenMyValueChange();
}
myValue = value;
}
} //定义的委托
public delegate void MyValueChanged(object sender, EventArgs e);
//与委托相关联的事件
public event MyValueChanged OnMyValueChanged; //构造函数初始化初值并绑定一个事件处理函数
public Program()
{
myValue = 0;
OnMyValueChanged += new MyValueChanged(afterMyValueChanged); } //事件处理函数,在这里添加变量改变之后的操作
private void afterMyValueChanged(object sender, EventArgs e)
{
//do something
} //事件触发函数
private void WhenMyValueChange()
{
if (OnMyValueChanged != null)
{
OnMyValueChanged(this, null);
}
}
}然后这个地方报错: get { return myValue; }
//这里报错 Error 3 Cannot implicitly convert type 'int' to 'bool'
// C:\Users\vpoint\documents\visual studio 2010\Projects\拖放窗体\拖放窗体\MainWindow.xaml.cs 252
// 26 拖放窗体
郁闷死了,完全不知道怎么回事,搜来搜去都是这么一段代码..
private int myValue; //这里定义的是整型 //属性设置,此处调用了事件触发函数
public bool MyValue
get { return myValue; } //这里定义的是bool 这样当然存在类型转换的问题了.
private int myValue; //这里定义的是整型 //属性设置,此处调用了事件触发函数
public bool MyValue
{
get { return myValue; } //这里用的时间是bool 类型不一样当然会存在转换错误了
public bool MyValue修改成 //属性设置,此处调用了事件触发函数
public int MyValue
public class Program
{
//需要监控的字段
private bool myValue; //属性设置,此处调用了事件触发函数
public bool MyValue
{
get { return myValue; }
//这里报错 Error 3 Cannot implicitly convert type 'int' to 'bool'
// C:\Users\vpoint\documents\visual studio 2010\Projects\拖放窗体\拖放窗体\MainWindow.xaml.cs 252
// 26 拖放窗体 set
{
//如果变量改变则调用事件触发函数
if (value != myValue)
{
WhenMyValueChange();
}
myValue = value;
}
} //定义的委托
public delegate void MyValueChanged(object sender, EventArgs e);
//与委托相关联的事件
public event MyValueChanged OnMyValueChanged; //构造函数初始化初值并绑定一个事件处理函数
public Program()
{
myValue = false;
OnMyValueChanged += new MyValueChanged(afterMyValueChanged); } //事件处理函数,在这里添加变量改变之后的操作
private void afterMyValueChanged(object sender, EventArgs e)
{
Console.WriteLine("changed!");
//do something
} //事件触发函数
private void WhenMyValueChange()
{
if (OnMyValueChanged != null)
{
OnMyValueChanged(this, null);
}
}
static void Main()
{
Program t = new Program();
t.MyValue = true;
t.MyValue = false;
Console.ReadKey();
}
}
我试了一下,可以用啊。