本文整理汇总了C#中IExpression.GetHash方法的典型用法代码示例。如果您正苦于以下问题:C# IExpression.GetHash方法的具体用法?C# IExpression.GetHash怎么用?C# IExpression.GetHash使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IExpression
的用法示例。
在下文中一共展示了IExpression.GetHash方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TryGetValue
ISymbolValue TryGetValue(IExpression x, params ISymbolValue[] argumentValues)
{
List<EvEntry> entries;
if(!cache.TryGetValue(x.GetHash(), out entries))
return null;
var parameters = GetParameters(x);
// If the expression is not depending on other expressions return the only expression cached so far.
if((parameters == null || parameters.Length == 0) &&
(argumentValues == null || argumentValues.Length == 0))
{
if(entries.Count == 1)
return entries[0].val;
return null;
}
if(argumentValues == null || argumentValues.Length == 0)
return null;
//var argHashes = new ulong[argumentValues.Length];
var valHashes = new ulong[argumentValues.Length];
for(int i = argumentValues.Length; i!=0;i--)
{
//argHashes[i] = parameters[i].GetHash();
valHashes[i] = (ulong)argumentValues[i].GetHashCode();
}
foreach(var e in entries)
{
for(int i = argumentValues.Length; i!=0; i--)
{
if(e.argumentValueHashes[i] != valHashes[i])
goto cont;
}
cont: continue;
}
return null;
}