2015-06-01 27 views
1

我需要使用下面的程序類的字符串變量到TelnetConnection類,我盡一切可能的方式,但不工作,請給我sugessions。 謝謝。如何將程序類的變量用於其他類?

程序類

class Program 
{  
    static void main() 
    { 
    string s = telnet.Login("some credentials"); 
    } 
} 

TelnetConnection的類

class TelnetConnection 
{ 
     public string Login(string Username, string Password, int LoginTimeOutMs) 
     { 

      int oldTimeOutMs = TimeOutMs; 
      TimeOutMs = LoginTimeOutMs; 

      WriteLine(Username); 

      s += Read(); 

      WriteLine(Password); 

      s += Read(); 
      TimeOutMs = oldTimeOutMs; 
      return s; 
     } 
    } 
+2

請進一步明確的問題,併發布TelnetInterface(類?)。 –

+0

您需要實例化一個類型爲「TelnetConnection」的對象,或者使方法「Login」靜態以便能夠在「Program.main()」 –

回答

4

應該是這樣的:

public class TelnetConnection 
{ 
    public string Login(string Username, string Password, int LoginTimeOutMs) 
    { 
     string retVal = ""; 

     int oldTimeOutMs = TimeOutMs; 
     TimeOutMs = LoginTimeOutMs; 

     WriteLine(Username); 

     retVal += Read(); 

     WriteLine(Password); 

     retVal += Read(); 
     TimeOutMs = oldTimeOutMs; 
     return retVal ; 
    } 
} 

在程序:

class Program 
{  
    static void main() 
    { 
     var telnet = new TelnetConnection(); 
     string s = telnet.Login("some username", "some password", 123); 
    } 
} 

但您的示例中似乎缺少一些代碼,尤其是Read方法的實現。

如果你想改變程序的字符串變量,您可以用ref關鍵字把它傳遞給方法:

public class TelnetConnection 
{ 
    public string Login(string Username, 
         string Password, int LoginTimeOutMs, ref string retVal) 
    { 
     //omitted 
     retVal += Read(); 

     WriteLine(Password); 

     retVal += Read(); 
     TimeOutMs = oldTimeOutMs; 
     return retVal ; 
    } 
} 

在程序:

class Program 
{  
    static void main() 
    { 
     var telnet = new TelnetConnection(); 
     string s = ""; 
     telnet.Login("some username", "some password", 123, ref s); 
     //s is altered here 
    } 
} 
+0

中使用它,謝謝。 – Member123