代码之家  ›  专栏  ›  技术社区  ›  ACP

C#输出参数值传递

  •  5
  • ACP  · 技术社区  · 14 年前

    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);
    

    我传递的值是否正确 外面的

    4 回复  |  直到 12 年前
        1
  •  7
  •   David M    14 年前

    您需要将它们作为声明变量传递,并且 out

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

    换言之,您不会将值传递给这些参数,它们会在传递过程中接收这些值 外面的

        2
  •  3
  •   Petar Minchev    14 年前

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

    顺便说一句,你不必这么做 DataTable dt = new DataTable(); 我们的想法是 GetContacts 方法将初始化 out 变量。

    Link MSDN 辅导的。

        3
  •  1
  •   BenMorel lsalamon    11 年前

    从你的函数定义开始

    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);
    

    请注意 外面的 外面的 MSDN website .

        4
  •  0
  •   ChrisBD    14 年前

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

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