如何使用委托操作作为参数?

时间:2014-12-02 05:15:34

标签: c#

我使用委托操作作为方法中的参数,如下所示:

private IEnumerable<SC.ServerPathServices.GAFPFileInfo> StartProjectArchive(Int32 projectID, Int32 sourceServerPathID, Action uiRefresh,Action<IEnumerable<ProjectFile>> PopUpFiles)

这里我有两位代表。我有PopUpFiles Delegate的问题。

我通过将文件列表作为参数传递给PopUpFiles来调用我的方法,如下所示:

 if(PopUpFiles!=null)
                   PopUpFiles(filesModifiedInSourceServer);

这里filesModifiedInSourceServer包含文件列表。 我在一个代码隐藏文件中调用它,如下所示:

archiveResponse = projectManager.StartProjectArchive(projectId, 0, () =>
                     {
                         foreach (Control control in tdFileList.Controls.Cast<Control>())
                         {
                             if (control is Dell.AFP.UserControl.ProjectFileListBaseControl)
                             {
                                 ((ProjectFileListBaseControl)control).Refresh();
                             }
                         }
                     },
                     (filesModifiedInSourceServer)=>
                         {
                             if (filesModifiedInSourceServer != null && filesModifiedInSourceServer.Count > 0)
                             {
                             PopUpModifiedFiles(filesModifiedInSourceServer);
                             }
                         });

但是在上面的代码中,当我为委托动作PopUpFiles传递参数时,我使用filesModifiedInSourceServer作为参数。它给了我一个错误,因为委托行动没有一个参数。我怎么能传递参数? 这已经解决了。现在我在调用该方法时遇到对象引用错误。我不知道为什么它会抛出对象引用错误。

0 个答案:

没有答案