我正在使用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
参数的正确值?
答案 0 :(得分:6)
您需要使用out
关键字将其作为声明的变量传递:
bool isOk;
DataTable dtContact;
string strError;
gm.GetContacts("chendur.pandiya@gmail.com", "******",
out isOk, out dtContact, out strError);
换句话说,您不会将值传递给这些参数,而是以out
的方式接收它们。只有一种方式。
答案 1 :(得分:2)
调用方法时,您必须“out” - gm.GetContacts("chendur.pandiya@gmail.com", "******", out yourOK, out dt, out strerr);
顺便说一下,在打电话之前你不必做DataTable dt = new DataTable();
。
我们的想法是GetContacts
方法会初始化您的out
变量。
Link到MSDN
教程。
答案 2 :(得分: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 website上找到有关out
参数的更多信息。
答案 3 :(得分:0)
我建议您传递bool变量而不是文字值,并将out关键字放在它们之前。
bool boolIsOK = true;
gm.GetContacts("chendur.pandiya@gmail.com", "******", out boolIsOK, out dt, out strerr)