[英]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.