Я в настоящее время чтения Джона Скита C# в глубине 2-е издание, и следующий вопрос пришел мне на ум:Lambda делегировать разрешение
Как поживает компилятор сможет выбрать между list.Sort(Comparison<T>)
и list.Sort(MyComparison<T>)
в следующем примере:
// MyComparison has the same signature as Comparison<in T>
public delegate int MyComparison<in T>(T x, T y);
public class MyList<T> : List<T>
{
// Sort is like Sort(Comparison<T>) except it takes a MyComparison<T> in parameter
public int Sort(MyComparison<T> comparison)
{
Console.WriteLine("Sort MyComparison<T>");
return -1;
}
}
MyList<Product> list = new MyList<Product>();
list.Sort((product1, product2) => product1.Name.CompareTo(product2.Name));
// Equivalent to
list.Sort(new MyComparison<Product>((product1, product2) => product1.Name.CompareTo(product2.Name)));
// But not equivalent to...
list.Sort(new Comparison<Product>((product1, product2) => product1.Name.CompareTo(product2.Name)));
заранее спасибо
Большое спасибо за помощь. (Мне нравится книга, большое спасибо за то, что нашли время, чтобы ее обновить). –