如何调用带参数的方法?

时间:2016-08-09 10:53:17

标签: c# methods

我试图用参数调用一个方法,但它不起作用。我有这个方法:

 public class AllMethods
    {
       //method change state and status of entity objetivovisitacao for "Propagado"
        public static void changeStatus(Guid objetivoId, IOrganizationService service, int state)
        {
            SetStateRequest setStateRequest = new SetStateRequest
            {
                EntityMoniker = new EntityReference("statuscode", objetivoId),
                State = new OptionSetValue(0),
                Status = new OptionSetValue(911950001),
            };
            service.Execute(setStateRequest);
        }

    }

我需要调用该方法,所以我尝试这样做:

  AllMethods.changeStatus();

但这是错的。有人可以解释一下这样我可以更好地理解我在这里失踪的东西吗?

5 个答案:

答案 0 :(得分:2)

首先为方法的参数创建变量。然后按照它们在方法中声明的顺序传递它们。

Guid yourObjetivoId = new Guid();
IOrganizationService yourService = New YourImplementationOfOrganizationService();
int yourState = 3;

AllMethods.changeStatus(yourObjetivoId, yourService, yourState);

来自MSDN:Methods (C# Programming Guide)

  

方法定义指定任何参数的名称和类型   这是必需的。
  当调用代码调用该方法时,提供   具体值称为每个参数的参数   争论   必须与参数类型兼容,但参数名称(如果   调用代码中使用的任何一个都不必与   方法中定义的参数

答案 1 :(得分:1)

传递参数时无需说明参数的类型。 你应该这样称呼它:

AllMethods.changeStatus(objetivoId, service, state);

答案 2 :(得分:0)

您需要传递参数,请参阅文档:Pass parameters c#

在你的情况下

AllMethods.changeStatus(objetivoId, service, state);

答案 3 :(得分:0)

如果你声明一个类似你的方法:

public static void changeStatus(Guid objetivoId, IOrganizationService service, int state)

在括号中声明参数。当您尝试调用它时,编译器需要必要的输入。因此,您需要调用此方法的拟合参数。它就像锁的钥匙。

Guid objetivoId = // your value
IOrganizationService service = // your value
int state = // your value

然后你这样称呼它:

AllMethods.changeStatus(objetivoId, service, state);

您无需在通话中再次声明它们!它必须事先完成

答案 4 :(得分:0)

你做错了,因为你在这里声明参数的类型:

AllMethods.changeStatus(Guid objetivoId, IOrganizationService service, int state);

要调用此方法changeStatus(...),您需要传递参数objetivoId, service, state的变量。

AllMethods.changeStatus(objetivoId, service, state);

请参阅:Passing of Parameters in C#

MSDN:

  

在C#中,参数可以通过值或通过传递给参数   参考