簡體   English   中英

C#out參數值傳遞

[英]C# out parameter value passing

我正在使用contactsreader.dll導入我的Gmail聯系人。 我的一個方法有out參數。 我這樣做:

Gmail gm = new Gmail();
DataTable dt = new DataTable();
string strerr;
gm.GetContacts("chendur.pandiya@gmail.com", "******", true, dt, strerr);
// It gives invalid arguments error..

我的Gmail課程有

public void GetContacts(string strUserName, string strPassword,out bool boolIsOK,
out DataTable dtContatct, out string strError);

我是否為out參數傳遞了正確的值?

您需要使用out關鍵字將它們作為聲明的變量傳遞:

bool isOk;
DataTable dtContact;
string strError;
gm.GetContacts("chendur.pandiya@gmail.com", "******",
    out isOk, out dtContact, out strError);

換句話說,您不會將值傳遞給這些參數,而是在出路out接收它們。 只有一種方法。

調用方法時你必須把“out” - gm.GetContacts("chendur.pandiya@gmail.com", "******", out yourOK, out dt, out strerr);

順便說一下,你不必做DataTable dt = new DataTable(); 在打電話之前 我們的想法是GetContacts方法將初始化你的out變量。

鏈接MSDN教程。

既然定義了你的功能

public void GetContacts(string strUserName, string strPassword, out bool boolIsOK, out DataTable dtContatct, out string strError);

要求您傳遞一些out參數,您需要在調用時尊重方法簽名

gm.GetContacts("<username>", "<password>", out boolIsOK, out dtContatct, out strError);

請注意, out參數只是占位符,因此在將它們傳遞給方法之前不需要提供值。 您可以在MSDN網站上找到有關out參數的更多信息。

我建議您傳遞bool變量而不是文字值,並將out關鍵字放在它們之前。

bool boolIsOK = true;
gm.GetContacts("chendur.pandiya@gmail.com", "******", out boolIsOK, out dt, out strerr)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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