不同方法结束时如何调用方法?

时间:2019-07-16 18:30:48

标签: c#

在另一个方法结束之后,是否可以选择调用方法?我想在Method2中调用Method1,但是我希望我的程序在Method2结束后执行Method1

编辑:更具体地说:

private void FileSystemWatcher_Changed(object sender, FileSystemEventArgs e)
{
    filePath = e.FullPath;
    DoSomethingWithChangedFile();
}

这不起作用,因为FileSystemWatcher_Changed正在使用我想在DoSomethingWithChangedFile()中使用的文件。有什么简单的解决方案我看不到,我只是傻瓜?

1 个答案:

答案 0 :(得分:1)

好的,我建议更改架构,但是您可以使用一些方法。 例如,您可以使用事件来通知何时发生并处理此事件。 通常基于事件的内容不容易调试,并且可能成为噩梦。

这里是一个例子:

using System;
namespace ConsoleApp17
{
    public class Summer
    {
        public delegate void EventRaiser();
        public event EventRaiser OnSomethingHappened;

        public int Sum(int a, int b)
        {
            int c = a + b;
            if (a != b) // you sophisticated check here
            {
                OnSomethingHappened();
            }
            return c;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Summer a = new Summer();
            a.OnSomethingHappened += OnSomethingHandler;

            Console.WriteLine($"result = {a.Sum(1, 2)}");
            Console.WriteLine($"result = {a.Sum(2, 2)}");
            Console.ReadKey();
        }

        private static void OnSomethingHandler()
        {
            Console.WriteLine("Something happend");
        }
    }
}

我希望对您有帮助