[英]How are methods with arguments invoked?
我正在嘗試使用參數調用方法,但是它不起作用。 我有這種方法:
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();
但這是錯誤的。 有人可以解釋一下,以便我更好地了解我在這里缺少什么嗎?
首先為方法的參數創建變量。 然后以與方法中聲明的順序相同的順序傳遞它們。
Guid yourObjetivoId = new Guid();
IOrganizationService yourService = New YourImplementationOfOrganizationService();
int yourState = 3;
AllMethods.changeStatus(yourObjetivoId, yourService, yourState);
從MSDN: 方法(C#編程指南)
方法定義指定所需的任何參數的名稱和類型。
調用代碼調用該方法時,它為每個參數提供稱為參數的具體值 。
參數必須與參數類型兼容,但是調用代碼中使用的參數名稱(如果有)不必與方法中定義的參數名稱相同
傳遞參數時,無需聲明參數的類型。 您應該這樣稱呼它:
AllMethods.changeStatus(objetivoId, service, state);
如果您像這樣聲明一個方法:
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);
您無需在通話中再次聲明它們! 必須事先完成
您做錯了,因為您在這里聲明參數的類型:
AllMethods.changeStatus(Guid objetivoId, IOrganizationService service, int state);
為了調用此方法changeStatus(...)
,您需要為變量objetivoId, service, state
傳遞變量。
AllMethods.changeStatus(objetivoId, service, state);
請參閱: C#中的參數傳遞
MSDN:
在C#中,可以通過值或引用將參數傳遞給參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.