C# 存储一个接一个执行的方法
我正在使用SSH.NET,我想在我的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
连接
类中创建“安全模式”。基本上,它应该存储在一个连接中完成的所有方法,然后在需要时一个接一个地“执行”它们。大概是这样的:
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循环级别或直接在“操作”中处理任何错误。非常感谢大家!