Является ли это способом C# для создания экземпляра переменной в вызове метода без использования оператора switch.Как создать экземпляр переменной для вызова метода
ответ
Похоже, что вы хотите взять строку и использовать эту строку для вызова метода на объекте, это можно сделать с помощью reflection без необходимости в заявлении switch
.
string methodName = "ToString";
var method = typeof(TypeYourMethodExistsOn).GetMethod(methodName);
method.Invoke(objectInstance, null);
Aah Bob, Это был быстрый ответ, и я думаю, что это именно то, что я ищу. –
Имейте в виду, что оператор switch скорее всего быстрее, чем при использовании отражения. –
Ну, каждый из методов для вызова извлекает конкретное значение из XML-сообщения. Согласно схеме, существует около 80 нечетных уникальных значений, которые вы можете извлечь, что сделало бы для большого оператора switch, но это все равно будет быстрее, чем отражение. –
Я тоже не слишком ясен. Если вы не хотите использовать отражение (иногда тяжелое), для динамического вызова методов с использованием переменной вы можете использовать что-то вроде коллекции, содержащей делегатов, в качестве значений и вызывать их.
Я использую чрезвычайно похожий словарь-объект для динамического вызова известного метода на основе строковых вводов.
код псевдо:
delegate void Del(int i, double j);
class MathClass
{
static void Main()
{
MathClass m = new MathClass();
// Delegate instantiation using "MultiplyNumbers"
Del d = m.MultiplyNumbers;
Hashtable ht = new Hashtable();
ht.Add("mult", d);
// Invoke the delegate object.
System.Console.WriteLine("Invoking the delegate using 'MultiplyNumbers':");
for (int i = 1; i <= 5; i++)
{
((del) ht("mult"))(i, 2);
}
}
// Declare the associated method.
void MultiplyNumbers(int m, double n)
{
System.Console.Write(m * n + " ");
}
}
- 1. Получить экземпляр для вызова метода?
- 2. Как создать выражение LINQ для вызова метода?
- 3. Создать общий экземпляр внутри метода
- 4. . Изменение переменной переменной по методу вызова метода?
- 5. Как создать экземпляр объекта из метода прототипа
- 6. вызова метода класса с переменной
- 7. Невозможно создать экземпляр переменной автоматизации
- 8. Как создать экземпляр этого метода здесь?
- 9. Как создать экземпляр переменной перед загрузкой контроллеров
- 10. Как создать экземпляр типа ограниченной переменной?
- 11. Как создать экземпляр объекта переменной в Ruby?
- 12. Как получить тип переменной? и создать экземпляр?
- 13. Как создать экземпляр глобальной интеллектуальной переменной указателя?
- 14. Как создать экземпляр переменной в объект Swift?
- 15. Как создать экземпляр класса с помощью переменной?
- 16. Как я могу создать экземпляр переменной?
- 17. tkinter Экземпляр кнопки не имеет метода вызова
- 18. Запретить экземпляр вызова общего/статического метода?
- 19. AttributeError: экземпляр ярлыка не имеет метода вызова
- 20. Как определить тип переменной для вызова общего метода в Java
- 21. Как создать экземпляр HttpContext?
- 22. экземпляр переменной жизни initiailized внутри метода/нити
- 23. Пропустить экземпляр производной базы для вызова производного метода
- 24. Java/Android Получить родительский экземпляр для вызова метода
- 25. Получить имя метода вызова переменной из этого метода
- 26. Как в mockito создать папку вызова метода?
- 27. Использовать имя класса, хранящегося в переменной, для вызова метода класса?
- 28. Создать экземпляр вызова с помощью autwire
- 29. Использование переменной в качестве метода вызова
- 30. Создать экземпляр объекта без вызова конструктора?
Я не уверен, что вы просите. Вы имеете в виду, как полиморфизм? –
Вы запрашиваете функцию, похожую на eval, где вы можете вызвать функцию по ее имени, когда она содержится в строковой переменной? –
-1 для того, чтобы не объяснять или давать подробности. Я ненавижу эти типы вопросов! – JonH