Установка в данный момент выбранного элемента переключателя в значение для использования в конструкторе объектов - PullRequest
0 голосов
/ 31 марта 2011

Привет, у меня есть класс Dog, у которого есть конструктор, который принимает значения типа int Id, string Name и SizeType sizeType.

Пользователь может указать все эти значения из пользовательского интерфейса, введя в текстовое поле идентификатор и имя, однако для размера он должен выбрать переключатель. Тип размера является типом перечисления public enum SizeType {small, medium, large}; (это объявлено в файле кода), и это объявляется, когда переменные экземпляра объявляются для класса privateType sizeType_ ;. Теперь, когда я пытаюсь создать объект-собаку на основе ввода пользователя, как установить значение перечисления SizeType для выбранной в данный момент радиокнопки в форме ??

Вот весь соответствующий код:

public Dog (int idNumber, string dogName, string breed, SizeType sizeType, NatureType natureType)
{
  dogId_ = idNumber;
  dogName_ = dogName;
  breed_ = breed;
  sizeType_ = sizeType;
  natureType_ = natureType;
}

public enum SizeType { small, medium, large };
private SizeType sizeType_;

Ответы [ 2 ]

0 голосов
/ 31 марта 2011

Делая некоторые предположения о технологии, которую вы используете; вы можете ответить на событие CheckedChanged;

    public enum SizeType { small, medium, large };
    private SizeType size;

    private void rbSmall_CheckedChanged(object sender, EventArgs e)
    {
        size = SizeType.small;
    }
    private void rbMedium_CheckedChanged(object sender, EventArgs e)
    {
        size = SizeType.medium;
    }
    public void CreateDog()
    {
        new Dog(10, "Ben", "Poodle", size, ...);
    }
0 голосов
/ 31 марта 2011

о какой технологии мы говорим?

Функция Enum.Parse примет строковое значение (значение вашего переключателя) и проанализирует его до значения enum, если это то, что вы пытаетесь сделать. Но в зависимости от того, что мы говорим (asp.net mvc, winforms и т. Д.), Это может или не может быть необходимым.

http://msdn.microsoft.com/en-us/library/system.enum.parse.aspx

...