public void Undo()
        {
            if (nameChanged)
            {
                bool b = origParentNode.TreeNode.Children.Remove(methodNode.TreeNode);
                Debug.Assert(b);
                if (!b)
                {
                    throw new InvalidOperationException();
                }

                origOptions.CopyTo(methodNode.MethodDef);
                origParentNode.TreeNode.Children.Insert(origParentChildIndex, methodNode.TreeNode);
            }
            else
            {
                origOptions.CopyTo(methodNode.MethodDef);
            }
            if (memberRefInfos != null)
            {
                foreach (var info in memberRefInfos)
                {
                    info.MemberRef.Name = info.OrigName;
                }
            }
            methodNode.TreeNode.RefreshUI();
        }
        public void Execute()
        {
            if (nameChanged)
            {
                bool b = origParentChildIndex < origParentNode.TreeNode.Children.Count && origParentNode.TreeNode.Children[origParentChildIndex] == methodNode.TreeNode;
                Debug.Assert(b);
                if (!b)
                {
                    throw new InvalidOperationException();
                }
                origParentNode.TreeNode.Children.RemoveAt(origParentChildIndex);
                newOptions.CopyTo(methodNode.MethodDef);

                origParentNode.TreeNode.AddChild(methodNode.TreeNode);
            }
            else
            {
                newOptions.CopyTo(methodNode.MethodDef);
            }
            if (memberRefInfos != null)
            {
                foreach (var info in memberRefInfos)
                {
                    info.MemberRef.Name = methodNode.MethodDef.Name;
                }
            }
            methodNode.TreeNode.RefreshUI();
        }