5

我正在使用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参数值?

4

4 回答 4

7

您需要使用以下out关键字将它们作为声明的变量传递:

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

换句话说,您不会将值传递给这些参数,它们会在途中接收它们out。只有一种方式。

于 2010-06-09T07:58:44.187 回答
3

调用方法时必须“输出”-gm.GetContacts("chendur.pandiya@gmail.com", "******", out yourOK, out dt, out strerr);

顺便说一句,你不必DataTable dt = new DataTable();在打电话之前做。这个想法是该GetContacts方法将初始化您的out变量。

链接MSDN教程。

于 2010-06-09T07:59:25.520 回答
1

由于你的功能的定义

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参数的更多信息。

于 2010-06-09T08:09:14.250 回答
0

我建议您传递一个 bool 变量而不是文字值,并将 out 关键字放在它们之前。

bool boolIsOK = true;
gm.GetContacts("chendur.pandiya@gmail.com", "******", out boolIsOK, out dt, out strerr)
于 2010-06-09T08:02:09.990 回答