Задать вопрос
@youkerni
Unity3D developer

Как сравнить два лямбда выражения?

Суть вопроса: есть два идентичных события. Как сравнить их так, что бы метод AreEqual вернул True.

Action a = () => Debug.Log(true); 
Action b = () => Debug.Log(true);

var result = AreEqual(a, b);


Когда-то сравнивал через метод который в качестве шаблона принимал одну лямбду, а потом сравнивал их. Сигнатура примерно такая.

public bool AreEqual<T>(T template, object action)
{

}


Плюс нужно что бы это работало и в таком виде:
var result = AreEqual(()=> Debug.Log(true), b);
  • Вопрос задан
  • 156 просмотров
Подписаться 1 Средний 3 комментария
Ответ пользователя Александр Кузнецов К ответам на вопрос (2)
DarkRaven
@DarkRaven
разработка программного обеспечения
В теории, вы можете размотать данное выражение в какое-то строковое, по вашему правилу. Т.е., транслировать данное выражение, как транслируется LINQ в соответствующий SQL (с оговорками и сохранением информации по типам) - если грубо.
Но, я бы не рекомендовал так делать в принципе, т.к. это все издержки и профит не очевиден.
Ответ написан
Комментировать