public IMethod Find(BinaryOperator op, IType left, IType right) { string key = ((int)op).ToString() + (int)left.SystemType().Code + (int)right.SystemType().Code; IMethod m; if (!_cache.TryGetValue(key, out m)) { m = op.FindMethod(left, right); if (m != null) { _cache.Add(key, m); } } return(m); }