2016-06-17 12 views
0

私が見たサイトの例に従おうとしています。私は関数が正しいが、それを正しく実装する方法がわからないことを知っている。Main。また、非常に未熟なので、私と一緒に耐えてください。boolを使用して電子メール文字列を検証する方法

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; 
      } 
     } 
    } 
} 
+0

'IsValidEmail'は' bool'を返しますが、 'string'に代入しようとしています。おそらく、 'if(IsValidEmail(UserEmail)){有効な電子メールを使って処理する} else {電子メールが無効であることをユーザーに伝える}'だけが必要です。電子メールが有効かどうかを判断するために例外処理を使用することは別の議論です。 – Quantic

答えて

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); 
} 
0

VSとC#のより新しいバージョンを使用している場合は、varを使用することができます。 C#3.0のVisualに始まり

var (C# Reference)

、方法 スコープで宣言された変数は、暗黙的な型varを持つことができます。暗黙的に型指定されたローカルの 変数は、あなた自身が型 を宣言したかのように強く型付けされますが、コンパイラによって型が決定されます。私の

次の2つの宣言は、機能的に同等です:あなたIsValidEmail関数はコンパイラ、その後、boolを返すので

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); 
} 

:にリファクタリングされ、コードになり

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

isValidEmailのタイプが暗黙的にboolとタイプされていると判断し、コンパイラーがthあなたのためのタイプ。

関連する問題