如何使用bool验证电子邮件字符串

时间:2016-06-17 20:19:45

标签: c# function validation email

尝试关注我看到的网站上的示例。我知道我有正确的功能,但不知道如何正确地将其实现到Main。也非常缺乏经验所以请耐心等待。

namespace TextSystemString
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Please enter your email.");
            string UserEmail = Console.ReadLine();
            string ValEmail = IsValidEmail(UserEmail); 
        }

        static public bool IsValidEmail(string email)
        {
            try
            {
                var addr = new System.Net.Mail.MailAddress(email);
                return true;
            }
            catch
            {
                return false; 
            }
        }
    }
}

2 个答案:

答案 0 :(得分:1)

您的IsValidEmail函数返回一个bool。

Main()中,你必须声明并设置一个布尔变量,而不是一个字符串 - 这就是你的应用程序没有编译的原因。然后,您可以使用变量执行任何操作。

static void Main(string[] args)
{
   Console.WriteLine("Please enter your email.");
   string UserEmail = Console.ReadLine();
   bool ValEmail = IsValidEmail(UserEmail); 

   Console.WriteLine("Valid Email:{0}", ValEmail);
}

答案 1 :(得分:0)

建议如果您使用的是更新版本的VS和C#,则可以使用var

  

<强> var (C# Reference)

     

从Visual C#3.0开始,在方法中声明的变量   范围可以具有隐式类型 var 。隐式键入的本地   变量是强类型的,就像你声明了类型一样   你自己,但编译器确定了类型。

     

i的以下两个声明在功能上是等效的:

var i = true; // implicitly typed
bool i = false; //explicitly typed

将您的代码重构为:

static void Main(string[] args)
{
    Console.WriteLine("Please enter your email.");
    var userEmail = Console.ReadLine(); // implicitly typed as string
    var isValidEmail = IsValidEmail(userEmail); // implicitly typed as bool

    Console.WriteLine("Valid Email:{0}", isValidEmail);
}

由于您的IsValidEmail函数返回bool,编译器将确定isValidEmail的类型被隐式输入为bool,从而避免编译器问题作为编译器确定您的类型。