Как использовать переменную класса программы для другого класса?

Мне нужно использовать следующую строковую переменную класса программы для класса 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;
        }
  }

1 ответ

Решение

Это должно быть что-то вроде этого:

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
    }
 }
Другие вопросы по тегам