为什么这个C#代码产生两次输出

Tes*_*nja 2 c# visual-studio-2010

嗨,我是C#的新手,正在测试一个简单的openFileDialog程序.我目前编写的代码似乎正在完成它的工作,但输出产生了两次.任何帮助,将不胜感激.

我的代码:

        watcher.Changed += new FileSystemEventHandler(OnChanged);
        watcher.Created += new FileSystemEventHandler(OnChanged);
        watcher.Deleted += new FileSystemEventHandler(OnChanged);

        watcher.EnableRaisingEvents = true;
    }

    private void OnChanged(object source, FileSystemEventArgs e)
    {

        MessageBox.Show("copying done");

        StreamReader inStream = new StreamReader(destFile);
        string line;
        string[] lineSplit;
        bool errorFound = false;

        while ((line = inStream.ReadLine()) != null)
        {   
            lineSplit = line.Split(' ');
            for (int i = 0; i < lineSplit.Length; i++)
            {
                if (lineSplit[i] == textBox2.Text)
                {
                    errorFound = true;
                    MessageBox.Show("Error found in " + e.Name);
                    MessageBox.Show("Exiting");
                    break;
                }

            }
        }
        inStream.Close();

    }
Run Code Online (Sandbox Code Playgroud)

输出:

    Copying Done
    File: ..Changed
    Copying Done
    File: ..Changed
Run Code Online (Sandbox Code Playgroud)

只是想知道它为什么打印两次?

Sha*_*hai 5

因为它调用OnChangedon watcher.Createdwatcher.Changed