C# 使用其他类C中的字符串#

C# 使用其他类C中的字符串#,c#,.net,C#,.net,我有一个类,它请求调用时,在请求/初始化字符串时发送字符串 class Checks { public Checks(string hostname2) { // logic here when class loads } public void Testing() { MessageBox.Show(hostname2); } } 如何在类构造函数中获取字符串“hostname2”)并允许在“Checks”类

我有一个类,它请求调用时,在请求/初始化字符串时发送字符串

class Checks
{
    public Checks(string hostname2)
    {
        // logic here when class loads

    }

    public void Testing()
    {
        MessageBox.Show(hostname2);
    }
}
如何在类构造函数中获取字符串“hostname2”)并允许在“Checks”类中的任何位置调用该字符串


例如,我从Form1类调用Checks(hostname2),现在当Checks类初始化时,我可以在Checks类中使用hostname2字符串,也可以在类中声明一个成员,并将传递给构造函数中的成员的值赋值:

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; }

您需要在类变量中复制构造函数参数:

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);
    }

}

可以公开公共属性以重新运行hostname2值,这是公开私有变量的标准


class Checks
{
    private string _hostname;
    public Checks(string hostname2)
    {
        _hostname = hostname2;
    }
    public string Hostname 
    {
       get { return _hostname; }
    }
}

您可能还应该指出,如果您不希望外部类更改该值,那么您可以使用公共getter而不是private或protectedsetter。您还可以在private字段上使用
readonly
关键字,以禁止修改,除非在构建时进行修改。其他类无论如何都不能访问私有字段,但是
只读
阻止同一类以后更改其值。换句话说,它让你明确你的意图。