Вызовите метод MethodInfo

CSS классы sorting_asc и sorting_desc приносят значок.

Самое простое решение для локализации исправления для конкретной таблицы - после инициализации таблицы выполнить в fnInitComplete следующее:

$(TABLE).find("thead th").removeClass("sorting_asc");

7
задан apparat 28 May 2009 в 08:41
поделиться

2 ответа

Это кажется мне проблемой с точки зрения определения проблемы, а не кодирования.

Методы экземпляра зависят от того, к какому экземпляру они вызываются - нет смысла вызывать метод экземпляра не заботясь о том, что это называется. (Как говорит Мартин, метод экземпляра, которому не важно, какой экземпляр он вызывается, почти всегда должен быть статическим. Единственное немедленное исключение, которое я могу придумать для этого, - это виртуальные методы, где экземпляр неявно указывает, какую реализацию использовать.)

Определите, что на самом деле означает в вашем контексте, чтобы существовал метод аннотированного экземпляра. Почему вы все равно пытаетесь вызывать методы? Какая картина шире? Какой у вас контекст? Я сильно подозреваю вас '

5
ответ дан 6 December 2019 в 12:54
поделиться

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

Если предположить, что вы не можете сделать его статическим, тогда вам понадобится следующий код:

    foreach (Type t in types)
    {
            object instance = Activator.CreateInstance(t);

            MethodInfo[] methods = t.GetMethods();
            foreach (MethodInfo method in methods)
            {                    
                method.Invoke(instance, params...);    
            }
    }
11
ответ дан 6 December 2019 в 12:54
поделиться
Другие вопросы по тегам:

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