2010-06-09 5 views
5

J'utilise contactsreader.dll pour importer mes contacts Gmail. Une de mes méthodes a le paramètre out. Je fais ceci:Valeur de paramètre C# out passant

Gmail gm = new Gmail(); 
DataTable dt = new DataTable(); 
string strerr; 
gm.GetContacts("[email protected]", "******", true, dt, strerr); 
// It gives invalid arguments error.. 

Et ma classe Gmail a

public void GetContacts(string strUserName, string strPassword,out bool boolIsOK, 
out DataTable dtContatct, out string strError); 

Suis-je passer les valeurs correctes pour out paramètres?

Répondre

6

Vous devez les transmettre sous forme de variables déclarées, avec le mot-clé out:

bool isOk; 
DataTable dtContact; 
string strError; 
gm.GetContacts("[email protected]", "******", 
    out isOk, out dtContact, out strError); 

En d'autres termes, vous ne passez pas des valeurs à ces paramètres, ils les reçoivent sur le chemin out. Sens unique.

2

Vous devez mettre « out » lors de l'appel de la méthode - gm.GetContacts("[email protected]", "******", out yourOK, out dt, out strerr);

Et en passant, vous ne devez pas faire DataTable dt = new DataTable(); avant d'appeler. L'idée est que la méthode GetContacts va initialiser vos variables out.

Link à MSDN tutoriel.

0

Je suggère que vous transmettiez une variable bool au lieu d'une valeur littérale et placez le mot-clé out avant eux.

bool boolIsOK = true; 
gm.GetContacts("[email protected]", "******", out boolIsOK, out dt, out strerr) 
1

Depuis la définition de votre fonction

public void GetContacts(string strUserName, string strPassword, out bool boolIsOK, out DataTable dtContatct, out string strError); 

exige que vous passez quelques out paramètres, vous devez respecter la signature de la méthode lors de l'appel, il

gm.GetContacts("<username>", "<password>", out boolIsOK, out dtContatct, out strError); 

Notez que out paramètres sont juste des espaces réservés, vous n'avez donc pas besoin de fournir une valeur avant de les passer à la méthode. Vous pouvez trouver plus d'informations sur les paramètres out sur le MSDN website.

2

Je pense que cela utile pour vous ...

public class Program 
{ 
    static void Method(out string param) 
    { 
    param = "Beautifull Bangladesh"; 
    } 
    static void Main() 
    { 
     string valueOut; 
     Method(out valueOut); 

     Console.WriteLine(valueOut); 
     Console.ReadKey(); 
    } 
} 
+1

Cette question a déjà une réponse acceptée et vous ne semble pas avoir quoi que ce soit ajouté qui n'a pas été couverte en elle. – JamesT

+1

@J Tolley: Tout à fait raison, mais cette réponse a été conçue uniquement pour * upvoting série * entre trois amis, et n'était pas destiné à être utile. La plupart de ses réponses sont postées sur de vieilles questions comme celle-ci. Voir un ami ici: http://stackoverflow.com/questions/28085249/change-css-color-property-dynamically-on-click/28085568#28085568 –

Questions connexes