我试图用参数调用一个方法,但它不起作用。我有这个方法:
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();
但这是错的。有人可以解释一下这样我可以更好地理解我在这里失踪的东西吗?
答案 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)
答案 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#中,参数可以通过值或通过传递给参数 参考