C# 存储一个接一个执行的方法

C# 存储一个接一个执行的方法,c#,ssh.net,C#,Ssh.net,我正在使用SSH.NET,我想在我的连接类中创建“安全模式”。基本上,它应该存储在一个连接中完成的所有方法,然后在需要时一个接一个地“执行”它们。大概是这样的: Connection conn = new Connection("server", "username", "password"); conn.secureMode(true); //enabling secure mode conn.changeDirectory("directory"); conn.downloadFile("f

我正在使用SSH.NET,我想在我的
连接
类中创建“安全模式”。基本上,它应该存储在一个连接中完成的所有方法,然后在需要时一个接一个地“执行”它们。大概是这样的:

Connection conn = new Connection("server", "username", "password");
conn.secureMode(true); //enabling secure mode
conn.changeDirectory("directory");
conn.downloadFile("file");
conn.FlushMethods();
conn.disconnect();
Flush()
之后,
changeditory(“目录”)
downloadFile(“文件”)
都应按此顺序“执行”

所以我应该将这些方法存储在某种数组或队列中,对吗?但是怎么做呢?那么如何执行它们呢


你能给我一些提示吗

在内部,您可以将命令列表存储为类中的一系列操作,并且仅当您希望“刷新”命令时才运行此列表

 public class Connection
 {
     private List<Action> _commandList = new List<Action>();

     public void ChangeDirectory(string directoryName)
     {
         _commandList.Add(() => 
             {
             //Actual code to change directory
             });
     }

     public void FlushMethods()
     {
         foreach(var command in _commandList)
         {
             command();
         }
         _commandList.Clear();
    }
}
公共类连接
{
私有列表_commandList=新列表();
public void changeditory(字符串directoryName)
{
_commandList.Add(()=>
{
//更改目录的实际代码
});
}
公共无效刷新方法()
{
foreach(命令列表中的var命令)
{
命令();
}
_commandList.Clear();
}
}

在内部,您可以将命令列表存储为类中的一系列操作,并且仅当您希望“刷新”命令时才运行此列表

 public class Connection
 {
     private List<Action> _commandList = new List<Action>();

     public void ChangeDirectory(string directoryName)
     {
         _commandList.Add(() => 
             {
             //Actual code to change directory
             });
     }

     public void FlushMethods()
     {
         foreach(var command in _commandList)
         {
             command();
         }
         _commandList.Clear();
    }
}
公共类连接
{
私有列表_commandList=新列表();
public void changeditory(字符串directoryName)
{
_commandList.Add(()=>
{
//更改目录的实际代码
});
}
公共无效刷新方法()
{
foreach(命令列表中的var命令)
{
命令();
}
_commandList.Clear();
}
}

是否还有其他原因需要使用队列?到目前为止,如果它们以这种顺序出现在代码中,那么它们将以相同的顺序运行。不,没有。我正在考虑某种类型的集合。是否还有其他原因需要使用队列?到目前为止,如果它们以这种顺序出现在代码中,那么它们将以相同的顺序运行。不,没有。我正在考虑某种集合。OP:注意潜在的异常,您应该适当地处理它们。正确,您将需要在foreach循环级别或直接在“操作”中处理任何错误。非常感谢大家!OP:注意潜在的异常,您应该适当地处理它们。正确的,您将需要在foreach循环级别或直接在“操作”中处理任何错误。非常感谢大家!