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

Jam*_*are 5 .net c#

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

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

    }

    public void Testing()
    {
        MessageBox.Show(hostname2);
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在类构造函数中获取字符串"hostname2"并允许在"Checks"类中的任何位置调用此字符串?

例如,我从Form1类调用Checks(hostname2),现在当Checks类初始化时,我可以在Checks类中使用hostname2字符串.

Tud*_*dor 7

声明类中的成员并将您传递给构造函数内的成员赋值:

class Checks
{
    private string hostname2;

    public Checks(string hostname2)
    {
       this.hostname2 = hostname2; // assign to member
    }

    public void Testing()
    {
        MessageBox.Show(hostname2);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您还需要外部访问权限,请将其设为属性:

class Checks
{
    public string Hostname2 { get; set; }

    public Checks(string hostname2)
    {
       this.Hostname2 = hostname2; // assign to property
    }

    public void Testing()
    {
        MessageBox.Show(Hostname2);
    }
}
Run Code Online (Sandbox Code Playgroud)

按惯例,属性以大写字母开头.现在您可以像这样访问它:

Checks c = new Checks("hello");
string h = c.Hostname2; // h = "hello"
Run Code Online (Sandbox Code Playgroud)

感谢Andy指出这一点:如果您希望该属性是只读的,请将setter设为私有:

public string Hostname2 { get; private set; }
Run Code Online (Sandbox Code Playgroud)

  • 您可能还应该指出,如果您不希望外部类更改您可以拥有公共getter但私有或受保护的setter的值. (2认同)