簡體   English   中英

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

[英]Using strings from other classes C#

我有一個類請求在調用時在請求/初始化時發送一個字符串。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM