[英]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}";
}
因此,當設置ComboBox
的DataSource
時,它使用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.