Есть класс для сортировки процессов:
public class SortByProcessName : IComparer<Process>
{
public int Compare(Process p, Process q)
{
return p.ProcessName.CompareTo(q.ProcessName);
}
}
в другом классе я вызываю Compare , но можно ли вызывать так?
var pro = Process.GetProcesses();
Array.Sort(pro, new SortByProcessName());
или же лучше делать так?
SortByProcessName st = new SortByProcessName();
Array.Sort(pro, st.Compare);
Какой способ лучше использовать?
Без разницы. Оба способа будут использовать один и тот же метод Compare.
Все дело в удобстве использования. Именно поэтому метод Array.Sort имеет столько перегрузок (разные наборы параметров).
Например, можете в классе SortByProcessName метод Compare сделать статическим и тогда вам вобще не нужно будет создавать экземпляр класса SortByProcessName:
Array.Sort(pro, SortByProcessName.Compare);
Можете создать статический класс, реализующий кучу обобщенных интерфейсов IComparer и, соответственно, в нем реализовать все нужные вам алгоритмы сравнения. Как вам удобнее.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости