Как использовать переменную в качестве идентификатора свойства? - PullRequest
0 голосов
/ 08 апреля 2020

В моем конкретном примере c я использую свойство Control.ModifierKeys и что-то вроде:

if (Keyboard.Modifiers == ModifierKeys.Shift)
{
    // some code
}

Но, скажем, я хочу, чтобы "Shift" был в состоянии быть измененным через переменную, например:

private string myKey = "Shift"
if (Keyboard.Modifiers == ModifierKeys.myKey)
{
    // some code
}

Как бы я мог это сделать?

Ответы [ 2 ]

1 голос
/ 08 апреля 2020

Нет, вы не можете сделать это и добавить значение переменной как константу перечисления. Вы можете напрямую сравнить свой строковый ключ как

private string myKey = "Shift"
if (Keyboard.Modifiers.ToString() == myKey)
{
    // some code
}
1 голос
/ 08 апреля 2020

Вы можете сравнивать перечисления со строками, вызывая ToString():

private string myKey = "Shift"
if (Keyboard.Modifiers.ToString() == myKey)
{
    // some code
}

Но более безопасным для типов способом было бы сохранить значение перечисления в переменной:

private Keys myKey = ModifierKeys.Shift;
if (Keyboard.Modifiers == myKey)
{
    // some code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...