Есть класс для сортировки процессов:
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 и, соответственно, в нем реализовать все нужные вам алгоритмы сравнения. Как вам удобнее.
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Помогите сделать привязку данных к свойствам класса2 день не могу разобраться
Пытаюсь вызвать функцию rgethstpar_date из библиотеки Honeywell hscnetapidll в C# 4 VS 2010
Доброе утро, у меня из бд отображается datagridView, проблема в том что последний столбец является типом datetime и обратно из грида в бд он не парсится...