如何将可选参数传递给C#中的方法?

假设我创建了一个名为Sendcommand的方法

public void SendCommand(String command,string strfilename)
{

    if (command == "NLST *" ) //Listing Files from Server.
    {
        //code
    }
    else if (command == "STOR " + Path.GetFileName(uploadfilename)) //Uploading file to Server
    {
        //code
    }
    else if ...
}

现在我想在主要方法中调用此方法
Sendcommand("STOR ", filename);
Sendcommand("LIST"); // In this case i dont want to pass the second parameter

如何实现呢?

最佳答案

使用params属性:

public void SendCommand(String command, params string[] strfilename)
{
}

那么您可以这样称呼它:
SendCommand("cmd");
SendCommand("cmd", "a");
SendCommand("cmd", "b");

或者,如果您使用C#4.0,则可以使用新的可选参数功能:
public void SendCommand(String command, string strfilename=null)
{
   if (strfilename!=null) ..
}

关于.net - 如何将可选参数传递给C#中的方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3360727/

10-12 14:48