【发布时间】:2013-05-29 05:44:30
【问题描述】:
重复问题: Property is inaccessible due to its protection level
我想使用委托和事件将字符串从类发送到表单文本框,如上面的重复问题中所示。由于我是这个主题(代表和活动)的新手,所以我无法进行设置。这是我所做的:
class Converter
{
public delegate void SendText( Converter c, EventArgs e);
public event SendText RaiseEvent;
public static void WatchFile()
{
// watcher is initialized (code is not show)
watcher.Changed += new FileSystemEventHandler(convert);
}
public static void convert(object source, FileSystemEventArgs f)
{
//do something then
if (RaiseEvent != null)
{
// Raise event and send text to controls
}
}
}
我收到一条错误消息:
非静态字段、方法或 属性'Ansi_UTF_8_converter.Converter.RaiseEvent'
你能告诉我上述方法是否正确吗?
【问题讨论】:
-
为什么要投票?有什么原因吗?
-
请不要为事件处理程序创建新的委托类型。请改用
EventHandler或EventHandler<TEventArgs>。 -
@Dennis:你能证明一下吗?我很想学习这项技术
-
@user726720: 使用
public event EventHandler RaiseEvent;代替public delegate void SendText( Converter c, EventArgs e); public event SendText RaiseEvent;。另外,请注意,指南建议将事件命名为某些发生的操作(“已更改”、“已单击”、“已检查”、“已接收”等)。 msdn.microsoft.com/en-us/library/w369ty8x.aspx