Во-первых, ваши соглашения об именах неверны - поле должно называться staffChoice
, а свойство должно называться StaffChoice
. Пожалуйста, прочитайте .NET именования для получения дополнительной информации. Однако, теперь внимательно посмотрите на вашу собственность:
public string staffChoice
{
get { return this.StaffChoice; }
set { staffChoice = StaffChoice; }
}
Как вы думаете, что делает сеттер? Есть две проблемы:
- Он игнорирует значение, которое вы пытаетесь установить.
- Он вызывает себя рекурсивно.
Вы могли бы исправить это, сохранив объявленное вручную поле, исправив соглашения об именах и изменив свойство, чтобы задать для переменной value
следующим образом:
private string staffChoice;
public string StaffChoice
{
get { return staffChoice; }
set { staffChoice = value; }
}
Однако было бы проще использовать автоматически реализованное свойство:
public string StaffChoice { get; set; }
Это автоматически создаст для вас поле поддержки и метод получения / установки.