簡體   English   中英

如何調用帶有參數的方法?

[英]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);

您需要傳遞參數,請參見文檔: 傳遞參數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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM