C# out参数值传递

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个回答

7

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

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

换句话说,您不需要向这些参数传递值,它们会在传递过程中输出接收到它们。只有一种方式。

3
当调用该方法时,必须在方法中添加“out” - gm.GetContacts("chendur.pandiya@gmail.com", "******", out yourOK, out dt, out strerr); 另外,调用之前不需要执行DataTable dt = new DataTable();。思路是GetContacts方法将初始化你的out变量。 MSDN教程链接:Link

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

0
我建议您传递一个布尔变量而不是字面值,并在它们之前加上out关键字。
bool boolIsOK = true;
gm.GetContacts("chendur.pandiya@gmail.com", "******", out boolIsOK, out dt, out strerr)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接