簡體   English   中英

是否可以使用變量作為類成員的標識符

[英]is it possible to use a variable as identifier of a class member

我正在處理一個 windows 窗體項目,我有一個這樣的 Person 類(簡化):

    class Person
    { public string name;
      public int age;

         public Person(string nameInput,int ageInput)
         {
            name=nameInput;
            age = ageInput;
         }
     }

現在我想啟動類的一些成員,但我想使用輸入作為成員的標識符,如下所示:

Person someTextBox.Text = new Person(name.Text,age.Text);

因為我不知道用戶想要創建多少人,我不知道他想如何稱呼他們我不能做一些像

Person p1 = new Person();
Person p2 = new Person();
Person p3 = new Person();
...

標識符很重要,因為我想創建一個下拉列表,用戶可以在其中選擇他聲明的人員並獲取顯示的年齡等信息

問題是它不能將“someTextBox.Text”識別為變量而是字符串

通過覆蓋Person類上的ToString() ,您可以返回有關相關Person的特定屬性,例如全名:

public override string ToString()
{
    return $"{First} {Last}";
}

因此,當設置ComboBoxDataSource時,它使用ToString因為我們沒有直接指定DisplayMember用作下拉列表中的可見字符串

在這里我正在加載一個ComboBox

public List<Person> People { get; set; }

private void Form1_Load(object sender, EventArgs e)
{
    People = new List<Person>()
    {
        new Person() {First = "Frank", Last = "Wright"},
        new Person() {First = "Omega", Last = "Man"}
    };

    cbPeople.DataSource = people;
}

所以當我啟動頁面時,我看到:

在此處輸入圖片說明


這是我完整的Person課程

public class Person
{
    public string First { get; set; }
    public string Last { get; set; }

    public override string ToString()
    {
        return $"{First} {Last}";
    }

}

如何檢索選定的

注意事項是什么明確的ComboBox具有與用戶選擇的項目,它存儲的參考People項目,並返回它SelectedItem或通過一些SelectedIndex 因此,如果我想要上一個示例中當前選定的項目,我會這樣做:

var mySelectedPerson = cbPeople.SelectedItem;

var name = mySelectedPerson.ToString(); // "Frank Wright" 

暫無
暫無

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

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