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

C# 如何使用委托操作作为参数?,c#,C#,我使用委托操作作为方法中的参数,如下所示: private IEnumerable<SC.ServerPathServices.GAFPFileInfo> StartProjectArchive(Int32 projectID, Int32 sourceServerPathID, Action uiRefresh,Action<IEnumerable<ProjectFile>> PopUpFiles) if(PopUpFiles!=null)

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

private IEnumerable<SC.ServerPathServices.GAFPFileInfo> StartProjectArchive(Int32 projectID, Int32 sourceServerPathID, Action uiRefresh,Action<IEnumerable<ProjectFile>> PopUpFiles)
 if(PopUpFiles!=null)
                   PopUpFiles(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);
                             }
                         });
这里fileModifiedInSourceServer包含文件列表。 我在代码隐藏文件中调用它,如下所示:

private IEnumerable<SC.ServerPathServices.GAFPFileInfo> StartProjectArchive(Int32 projectID, Int32 sourceServerPathID, Action uiRefresh,Action<IEnumerable<ProjectFile>> PopUpFiles)
 if(PopUpFiles!=null)
                   PopUpFiles(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);
                             }
                         });
archiveResponse=projectManager.StartProjectArchive(projectId,0,()=>
{
foreach(tdFileList.Controls.Cast()中的控件)
{
if(控件为Dell.AFP.UserControl.ProjectFileListBaseControl)
{
((ProjectFileListBaseControl)控件);
}
}
},
(FileModifiedInSourceServer)=>
{
if(fileModifiedInSourceServer!=null&&fileModifiedInSourceServer.Count>0)
{
PopupModifiedFile(文件修改源服务器);
}
});
但是在上面的代码中,当我为委托操作PopUpFiles传递参数时,我使用filemodifiedinsourceserver作为参数。它给了我一个错误,因为委托操作不接受一个参数。我还可以如何传递参数?
这个问题已经解决了。现在我在调用该方法时遇到对象引用错误。我不知道它为什么会抛出对象引用错误。

在向该操作传递参数时,错误是哪一行。下面是代码(fileModifiedInSourceServer)=>这里只是我遇到了一个错误,我看不出语法有任何明显的错误(但是,我仍然只喝了第一杯咖啡;p)。编辑:PopupModifiedFile的签名是什么?还有
fileModifiedInSourceServer.Count
不正确,应该是
.Count()
,因为它是
IEnumerable
错误?错误消息是什么?可能重复的