【问题标题】:Assign Method to Action<string>将方法分配给 Action<string>
【发布时间】:2012-03-27 09:58:50
【问题描述】:

我有一个类有一个名为Action&lt;string&gt;DisplayData

在课堂的各个方面我都叫DisplayData("Here's Data")

我有一个 Windows 窗体,其方法名为 AddToList(string Data)

我有一个主入口点类,它引用了我的类和表单,我正在尝试这样做:

fmMain MainForm = new fmMain();
MainForm.AddToList= Logic.DisplayData;

这个想法是,当我在该类的各个位置调用 DisplayData 时,表单将显示数据。

我认为表单必须有一个动作而不是一个方法,但我不完全确定

【问题讨论】:

    标签: c# .net c#-4.0 delegates


    【解决方案1】:

    你做错了。你应该使用:

    Logic.DisplayData = MainForm.AddToList;
    

    (我还强烈建议重新访问您的名称以遵循 .NET 命名约定,但这是另一回事。)

    【讨论】:

    • 什么是出于兴趣而糟糕的命名?
    • @Jon:你有一个使用 PascalCase 的变量和一个使用 camelCase 的类型——而且“frmMain”一开始就没有特别的描述性。以应用程序的实际内容命名它怎么样? :)
    • @Jon:你应该看看this
    【解决方案2】:
    fmMain MainForm = new fmMain();
    Logic.DisplayData+=MainForm.AddToList;
    

    【讨论】:

    • @Jon 因为这不是我写的事件 += !
    • @jon 一个事件不会让你做=。代表将。我不想冒险......所以+=....
    • 好的,谢谢。事实上,我只是在表单上创建了一个事件并使用了你的语法,它就起作用了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 2010-10-29
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多