public bool Verify()
        {
            Debug.Check(_method != null);

            if (_method != null)
            {
                string methodName = this.nameTextBox.Text;

                bool isValid = !string.IsNullOrEmpty(methodName) && methodName.Length >= 1 &&
                               char.IsLetter(methodName[0]) && (_method.ReturnType != null);

                if (isValid)
                {
                    MethodDef method = _agent.GetMethodByName(methodName);

                    // check method name
                    if (_isNew)
                    {
                        isValid = (method == null);
                    }
                    else
                    {
                        isValid = (method == null || method == _originalMethod);
                    }

                    // check its parameters
                    if (isValid)
                    {
                        foreach (MethodDef.Param param in _method.Params)
                        {
                            if (string.IsNullOrEmpty(param.Name) || param.Type == null)
                            {
                                isValid = false;
                                break;
                            }
                        }
                    }
                }

                return(isValid);
            }

            return(false);
        }