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