从另一个类调用方法时出现问题

本文关键字:问题 方法 另一个 调用 | 更新日期: 2023-09-27 18:35:44

我一直在用 c# 开发一个计时器,只是为了弄乱,因为我以前从未做过。 我想在单独的类中声明 OnTimedEvents 方法,因为我将在各种其他类中为各种其他测试调用它,但我无法在不出错的情况下正确调用它。 具体来说,我得到的方法''没有重载方法,需要0个参数。 我无法像使用其他方法那样解决此问题。 这是代码:

class MSOfficeApps {
    public static Timer aTimer;
    public void appWord() {
        var programCS = new Program();
        Microsoft.Office.Interop.Word.Application WordObj;
        WordObj = (Microsoft.Office.Interop.Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");
        for(int i = 0; i < WordObj.Windows.Count; i++) {
            object idx = i + 1;
            Microsoft.Office.Interop.Word.Window WinObj = WordObj.Windows.get_Item(ref idx);
            Console.WriteLine(WinObj.Document.FullName);
            aTimer = new System.Timers.Timer(600000);  //Sets timer to 6 minute increments
            aTimer.Elapsed += ElapsedEventHandler(programCS.OnTimedEvent());  //Throwing an error at programCS.OnTimedEvent()
        }
    }

这就是我想称呼的

class Program {
    private static void Main(string[] args) {
        SearchProcesses sP = new SearchProcesses();
        sP.BuildProcessLists();
        Console.WriteLine("Press Enter to exit the program...");
        Console.ReadLine();
    }
    public static void OnTimedEvent(Object source, ElapsedEventArgs e) {
        Console.WriteLine("Event was raised at {0}", e.SignalTime);
    }
}

请告知:)

从另一个类调用方法时出现问题

更改

aTimer.Elapsed += ElapsedEventHandler(programCS.OnTimedEvent());

aTimer.Elapsed += ElapsedEventHandler(programCS.OnTimedEvent);

您正在调用programCS.OnTimedEvent,而不是将其作为引用传递(并且在没有参数的情况下调用它),因此会出现错误。