比较两种方法签名的最佳实践

时间:2014-04-30 14:47:30

标签: c# memoization

我有一个存储方法调用结果的字典。 Dictionary键是方法调用签名,即 具有以下成员的对象。

string _name, 
Type[] _argTypes, 
string[] _argNames, 
object[] _argValues.

我必须覆盖TryGetValue的GetHashCode方法才能正确比较。 比较方法签名的最有效方法是什么?即上面的4个参数。

e.g。这对我来说似乎没有效率。

 public override int GetHashCode()
        {
            if(_name!=null)
                _hashCode = _name.GetHashCode();

            if (_argTypes != null)
            {
                foreach (object value in _argTypes)
                    _hashCode ^= value.GetHashCode();
            }
            if (_argNames != null)
            {
                foreach (object value in _argNames)
                    _hashCode ^= value.GetHashCode();
            }
            if (_argValues != null)
            {
                foreach (object value in _argValues)
                    _hashCode ^= value.GetHashCode();
            }
        }

0 个答案:

没有答案