2013-05-29 24 views
1

重複的問題:Property is inaccessible due to its protection levelC#委託和事件從類文本發送到形成

我想從使用委託和事件在上面的重複問題類的形式發送文本字符串。由於我是這個主題的新手(代表和活動),我無法設置它。這是我做了什麼:

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'

你能告訴我,如果以上是正確的做法。

+2

爲什麼upvote?任何原因? – David

+2

請不要爲事件處理程序創建新的委託類型。改用'EventHandler'或'EventHandler '。 – Dennis

+1

@丹尼斯:你能證明一下嗎?我很想學習這種技術 – user726720

回答

3

變化的靜態函數類方法的靜態:

public void convert(object source, FileSystemEventArgs f) 
{ 
    //do something then 
    if (RaiseEvent != null) { ... } 
} 

或更改事件靜:

public static event SendText RaiseEvent; 
0

你的事件應該是在這方面ussage的

public static event SendText RaiseEvent;