Проверка, удовлетворяет ли 'объект [] аргументы экземпляр Делегата?

Google нанимает лучший из лучших. Некоторые самые умные люди в IT работают в Google. У них есть фактически бесконечные деньги для броска в аппаратные средства и инженеров.

Они используют высоко оптимизированные механизмы хранения для задач, которые они выполняют.

Они географически определили местоположение ферм сервера.

6
задан DxCK 11 December 2009 в 21:19
поделиться

2 ответа

Вы можете использовать отражение, чтобы получить подпись метода делегата следующим образом.

using System;
using System.Reflection;

bool ValidateDelegate(Delegate method, params object[] args)
{
    ParameterInfo[] parameters = method.Method.GetParameters();
    if (parameters.Length != args.Length) { return false; }

    for (int i = 0; i < parameters.Length; ++i)
    {
        if (parameters[i].ParameterType.IsValueType && args[i] == null ||
            !parameters[i].ParameterType.IsAssignableFrom(args[i].GetType()))
        {
            return false;
        }
    }

    return true;
}
6
ответ дан 16 December 2019 в 21:41
поделиться

Похоже, фреймворк в основном выполняет то же самое, с некоторой логикой исключения, чтобы убедиться, что он хранит список уже оцененных.

1
ответ дан 16 December 2019 в 21:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: