#c# #ado.net
#c# #ado.net
Вопрос:
http://code.google.com/p/dapper-dot-net/source/browse/PerformanceTests.cs
Запутался, PerformanceTest.Run
инициализирует список, добавляя тестовые объекты.
Как он на самом деле выполняет запрос?
Я предполагаю, что это строка:
for (int i = 1; i <= iterations; i )
{
foreach (var test in this.OrderBy(ignore => rand.Next()))
{
test.Watch.Start();
test.Iteration(i);
test.Watch.Stop();
}
}
test.iteration(i);
Но как? Является ли это делегатом?
Ответ №1:
Да, Action
ключевым здесь является type. Action<T>
это встроенный тип делегата, который не имеет возвращаемого значения и (в данном случае) принимает один параметр типа T
. Iteration
это свойство типа Action<int>
, в котором тестовое действие хранится в Test
объекте, а ()
operator просто вызывает метод с i
параметром.
Ответ №2:
Да, Action<int>
это делегат, который принимает целое число в качестве аргумента (в данном случае номер итерации).