本文整理汇总了C#中ICSharpCode.NRefactory.Ast.MethodDeclaration.GetLookupTableWithParams方法的典型用法代码示例。如果您正苦于以下问题:C# MethodDeclaration.GetLookupTableWithParams方法的具体用法?C# MethodDeclaration.GetLookupTableWithParams怎么用?C# MethodDeclaration.GetLookupTableWithParams使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ICSharpCode.NRefactory.Ast.MethodDeclaration
的用法示例。
在下文中一共展示了MethodDeclaration.GetLookupTableWithParams方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FindCandidatesViaRefactoringPermutations
public IEnumerable<MethodDeclaration> FindCandidatesViaRefactoringPermutations(TargetInfo left, MethodDeclaration right)
{
right = right.DeepCopy();
/*
* Steps to change one to match the other.
* Get the lookup table for left.
* Get the lookup table for right.
* Loop through left, renaming the corresponding right var as you go (don't worry about collisions yet).
* Compare.
*
* This is essentially a normalization of one to the other.
*/
Dictionary<string, List<LocalLookupVariable>> left_table = left.GetLookupTableWithParams();
Dictionary<string, List<LocalLookupVariable>> right_table = right.GetLookupTableWithParams();
if (left_table.Keys.Count == right_table.Keys.Count)
{
IDictionary<string, string> renames = new Dictionary<string, string>();
for (int i = 0; i < left_table.Count; i++)
{
var left_var_name = left_table.Keys.ToArray()[i];
var right_var_name = right_table.Keys.ToArray()[i];
// current name => new name
renames.Add(right_var_name, left_var_name);
}
RenameLocalVariableRefactoring r = new RenameLocalVariableRefactoring(renames);
right.AcceptVisitor(r, null);
yield return right;
}
}