我需要在 TelnetConnection 类中使用以下程序类的字符串变量,我尝试了所有可能的方法但没有奏效,请给我建议。谢谢。
程序类
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;
}
}
应该是这样的:
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
}
}
我是一名优秀的程序员,十分优秀!