Я не думаю , вы можете сделать это напрямую, используя GetMethod
. Я подозреваю, что вам придется перебирать все методы, называемые Bar
, а затем:
Func<T>
(с typeof(Func<>).MakeGenericType
) и убедитесь, что тип параметра соответствует этому. LINQ хорош для этого Такие вещи. Полный образец:
using System;
using System.Reflection;
using System.Linq;
public class Foo
{
public void Bar<T>(Func<T> f) { }
public void Bar<T>(Action<T> a) { }
}
class Test
{
static void Main()
{
var methods = from method in typeof(Foo).GetMethods()
where method.Name == "Bar"
let typeArgs = method.GetGenericArguments()
where typeArgs.Length == 1
let parameters = method.GetParameters()
where parameters.Length == 1
where parameters[0].ParameterType ==
typeof(Func<>).MakeGenericType(typeArgs[0])
select method;
Console.WriteLine("Matching methods...");
foreach (var method in methods)
{
Console.WriteLine(method);
}
}
}
В основном дженерики и отражение действительно неприятны в сочетании, я боюсь: (
«Эквивалент» - это слово здесь
Хотя ...
$('#selectlist').val();
... эквивалентно ...
document.getElementById("selectlist").value
... стоит отметить, что ...
$('#selectlist')
... хотя «эквивалент» не то же самое, что ...
document.getElementById("selectlist")
... поскольку первый возвращает объект jQuery, а не объект DOM.
Чтобы получить объект (ы) DOM из jQuery, используйте следующее:
$('#selectlist').get(); //get all DOM objects in the jQuery collection
$('#selectlist').get(0); //get the DOM object in the jQuery collection at index 0
$('#selectlist')[0]; //get the DOM objects in the jQuery collection at index 0
Хаос - это то, что нужно, хотя для подобных вопросов вы должны проверить Документацию JQuery онлайн - это действительно довольно всеобъемлющий. Функция, которая вам нужна, называется «селекторы jquery»
Обычно вы выполняете $ ('# ID'). Val ()
- .afterwards может выполнять ряд действий с возвращаемым элементом. из селектора. Вы также можете выбрать все элементы в определенном классе и сделать что-нибудь с каждым из них. Ознакомьтесь с документацией, чтобы найти хорошие примеры.
В некоторых случаях я не могу вспомнить, почему, но $ ('# selectlist'). Val ()
не всегда возвращает правильное значение элемента, поэтому Вместо этого я использую $ ('# selectlist option: selected'). Val ()
.