我有一个类,在请求/初始化时请求调用字符串。
class Checks
{
public Checks(string hostname2)
{
// logic here when class loads
}
public void Testing()
{
MessageBox.Show(hostname2);
}
}
如何在类构造函数中使用字符串“hostname2”并允许在“Checks”类中的任何位置调用此字符串?
E.g。我从Form1类调用Checks(hostname2),现在当Checks类初始化时,我可以在我的Checks类中使用hostname2字符串
答案 0 :(得分:7)
在类中声明一个成员,并将您传递给构造函数内的成员的值赋值:
class Checks
{
private string hostname2;
public Checks(string hostname2)
{
this.hostname2 = hostname2; // assign to member
}
public void Testing()
{
MessageBox.Show(hostname2);
}
}
如果您还需要外部访问权限,请将其设为属性:
class Checks
{
public string Hostname2 { get; set; }
public Checks(string hostname2)
{
this.Hostname2 = hostname2; // assign to property
}
public void Testing()
{
MessageBox.Show(Hostname2);
}
}
按照惯例,属性以大写字母开头。现在您可以像这样访问它:
Checks c = new Checks("hello");
string h = c.Hostname2; // h = "hello"
感谢Andy指出这一点:如果您希望该属性为只读,请将setter设为私有:
public string Hostname2 { get; private set; }
答案 1 :(得分:2)
您需要在类变量中复制构造函数参数:
class Checks {
// this string, declared in the class body but outside
// methods, is a class variable, and can be accessed by
// any class method.
string _hostname2;
public Checks(string hostname2) {
_hostname2 = hostname2;
}
public void Testing() {
MessageBox.Show(_hostname2);
}
}
答案 2 :(得分:2)
您可以公开公共属性以返回主机名2值,该值是公开私有变量的标准
class Checks
{
private string _hostname;
public Checks(string hostname2)
{
_hostname = hostname2;
}
public string Hostname
{
get { return _hostname; }
}
}