2010-06-09 5 views
5

Gmail 연락처를 가져 오는 데 contactsreader.dll을 사용하고 있습니다. 내 방법 중 하나는 out 매개 변수입니다.C# 출력 매개 변수 값 전달

Gmail gm = new Gmail(); 
DataTable dt = new DataTable(); 
string strerr; 
gm.GetContacts("[email protected]", "******", 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 매개 변수에 대한 올바른 값을 전달 있습니까있다 :이 뭐하는 거지?

답변

6

당신은 out 키워드로 선언 된 변수로 전달해야합니다 즉

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

, 당신은 이러한 매개 변수에 값을 전달하지 않습니다, 그들은 길 out에 그들을받을 수 있습니다. 편도.

그리고 그런데 gm.GetContacts("[email protected]", "******", out yourOK, out dt, out strerr);, 당신은 호출하기 전에 DataTable dt = new DataTable(); 할 필요가 없습니다 -

2

당신은 메소드를 호출 할 때 "밖으로"넣어해야합니다. 아이디어는 GetContacts 메서드가 out 변수를 초기화한다는 것입니다.

Link to MSDN 자습서.

0

리터럴 값 대신 bool 변수를 전달하고 out 키워드를 앞에 두는 것이 좋습니다. 그것을 out 매개 변수는 것을

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

주를 호출 할 때 함수

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

의 정의부터

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

는 일부 out 매개 변수를 전달해야합니다, 당신은 방법 서명을 존중해야 그냥 자리 표시 자이므로 메서드에 전달하기 전에 값을 제공 할 필요가 없습니다. MSDN website에서 out 매개 변수에 대해 자세히 알아볼 수 있습니다.

2

나는이 질문은 이미 허용 대답을 가지고

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

... 당신이 의지가 도움이 생각하고 당신이 그것을에 포함되지 않은 추가 아무것도 나타나지 않습니다. – JamesT

+1

@J Tolley : 맞아요.하지만이 답변은 세 친구 사이의 연속 된 upvoting * 용으로 만 설계되었으며 유용성이있는 것은 아닙니다. 그의 대답의 대부분은 이런 오래된 질문에 게시됩니다. 여기에 한 친구보기 : http://stackoverflow.com/questions/28085249/change-css-color-property-dynamically-on-click/28085568#28085568 –