C # OUT Value Parameter Passing
-
25-09-2019 - |
Вопрос
я использую 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
. Отказ Только один путь.
Другие советы
Вы должны поставить «вне» при вызове метода - 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
Параметры - это просто заполнители, поэтому вам не нужно предоставлять значение, прежде чем передавать их в метод. Вы можете найти больше информации о out
Параметры на MSDN сайт.
Я бы предположил, что вы передаете переменную Bool вместо буквального значения и разместите ключевое слово OUT перед ними.
bool boolIsOK = true;
gm.GetContacts("chendur.pandiya@gmail.com", "******", out boolIsOK, out dt, out strerr)