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
错误?错误消息是什么?可能重复的