C# parâmetro valor passagem
-
25-09-2019 - |
Pergunta
Eu estou usando contactsreader.dll
para importar meus contatos do Gmail.Um dos meus método tem a out
o parâmetro.Eu estou fazendo isso:
Gmail gm = new Gmail();
DataTable dt = new DataTable();
string strerr;
gm.GetContacts("chendur.pandiya@gmail.com", "******", true, dt, strerr);
// It gives invalid arguments error..
E meu Gmail classe tem
public void GetContacts(string strUserName, string strPassword,out bool boolIsOK,
out DataTable dtContatct, out string strError);
Estou passando os valores corretos para out
parâmetros?
Solução
Você precisa passá-las como variáveis declaradas, com a out
palavras-chave:
bool isOk;
DataTable dtContact;
string strError;
gm.GetContacts("chendur.pandiya@gmail.com", "******",
out isOk, out dtContact, out strError);
Em outras palavras, você não passar valores para esses parâmetros, eles recebem no caminho out
.De uma maneira só.
Outras dicas
Você tem que colocar "fora" ao chamar o método - gm.GetContacts("chendur.pandiya@gmail.com", "******", out yourOK, out dt, out strerr);
E a propósito, você não precisa fazer DataTable dt = new DataTable();
antes de ligar. A ideia é que o GetContacts
Método inicializará o seu out
variáveis.
Link para MSDN
tutorial.
Desde a definição de sua função
public void GetContacts(string strUserName, string strPassword, out bool boolIsOK, out DataTable dtContatct, out string strError);
requer que você passe alguns out
Parâmetros, você precisa respeitar a assinatura do método ao invocá -lo
gm.GetContacts("<username>", "<password>", out boolIsOK, out dtContatct, out strError);
Observe que out
Os parâmetros são apenas espaços reservados, para que você não precise fornecer um valor antes de passá -los para o método. Você pode encontrar mais informações sobre out
parâmetros no Site do MSDN.
Eu sugeriria que você passe uma variável BOOL em vez de um valor literal e coloque a palavra -chave externa antes deles.
bool boolIsOK = true;
gm.GetContacts("chendur.pandiya@gmail.com", "******", out boolIsOK, out dt, out strerr)