Я использую LINQ, для которого требуется специальный компаратор, поэтому я создал новый класс, реализующий IEqualityComparer
.Однако, когда я его использую, мне приходится каждый раз создавать его экземпляр.
Dim oldListOnly = oldList.Except(newList, New MyEqualityComparer)
Dim newListOnly = newList.Except(oldList, New MyEqualityComparer)
Возможно, я неправильно понимаю, как работает .NET, но каждый раз создавать новый компаратор кажется расточительным.Я действительно просто хочу один экземпляр (эквивалент статического в C ++ / C #).
Поэтому я попытался создать «статический» класс, который в vb.net является модулем .Но получил ошибку 'Implements' not valid in Modules
.
Затем я попытался сделать методы Equals и GetHashCode общими для моего класса, но получил эту ошибку: Methods that implement interface members cannot be declared 'Shared'.
Любые идеи, как достичь своей целиВот?Или я просто неправильно понимаю, что происходит за кулисами?