Я строю иерархический класс сбора, который упорядочивает магнитно-резонансные изображения пространственно и упорядочивает их в группы на основе различных параметров сбора, которые использовались для их генерации. Конкретный метод, используемый для выполнения группировки, предоставляется пользователем класса. Я абстрагировал соответствующие функции в примере кода ниже. Для реализации IEquatable<MyClass>
я хотел бы иметь возможность сравнивать атрибуты _myHelperDelegate
двух экземпляров MyClass
, чтобы определить, указывают ли оба делегата на один и тот же фрагмент кода. Предложение (_myHelperDelegate == other._myHelperDelegate)
в приведенном ниже утверждении if явно является неправильным способом сделать это (он не компилируется, выдавая ошибку «Ожидается имя метода»). У меня вопрос, есть ли способ сравнить двух делегатов, чтобы определить, ссылаются ли они на один и тот же кусок кода? Если да, то как ты это делаешь?
public class MyClass : IEquatable<MyClass>
{
public delegate object HelperDelegate(args);
protected internal HelperDelegate _myHelperDelegate;
public MyClass(HelperDelegate helper)
{
...
_myHelperDelegate = helper;
}
public bool Equals(MyClass other)
{
if (
(_myHelperDelegate == other._myHelperDelegate) &&
(... various other comparison criteria for equality of two class instances... )
)
return true;
return false;
}
}