Я в настоящее время очень плохо знаком с C #, большая часть моих знаний пришла из Java и Python.С учетом сказанного у меня в настоящее время есть следующий код:
public class Person
{
public int Person_ID { get; set; }
public String First_Name { get; set; }
public String Last_Name { get; set; }
public String EmailAddress { get; set; }
public String FullInfo
{
get
{
// Matthew Arnold (mtthwrnld@gmail.com)
return $"{First_Name}, {Last_Name}, ({EmailAddress})";
}
}
}
со свойством «FullInfo», используемым здесь:
private void button1_Click(object sender, EventArgs e)
{
//'Results' is a ListBox
//'people' is a List of type Person
DataAccess db = new DataAccess();
people = db.getPeople(lastNameText.Text);
Results.DataSource = people;
Results.DisplayMember = "FullInfo";
}
Мой вопрос касается этой строки в явном виде: Results.DisplayMember = "FullInfo";
Как работает это назначение на самом деле ?Мы устанавливаем DisplayMember
для свойства FullInfo
, но мы заключаем его в String
.Почему мы просто не делаем Results.DisplayMember = Person.FullInfo
?
Как компилятор узнает, что это не какой-то старый String
?Каковы преимущества доступа к собственности таким образом?