2017-04-23 7 views
-1

//名前が正しい形式で書かれているかどうかを判断し、名前と苗字。C#。 "割り当てられていないローカル変数 'フルネーム'の使用があることを示すエラーが表示される

public partial class nameFormatForm : Form 
{ 
    public nameFormatForm() 
    { 
     InitializeComponent(); 
    } 

    private bool IsValidFullName(string str) 
    { 
     bool letters; 
     bool character; 
     bool fullname; 

     foreach (char ch in str) 
     { 
      if (char.IsLetter(ch) && str.Contains(", ")) 
      { 
       fullname = true; 
      } 

      else 
      { 
       MessageBox.Show("Full name is not in the proper format"); 
      } 
     } 
     return fullname; 
    } 

    private void exitButton_Click(object sender, EventArgs e) 
    { 
     this.Close(); 
    } 

    private void clearScreenButton_Click(object sender, EventArgs e) 
    { 
     exitButton.Focus(); 
     displayFirstLabel.Text = ""; 
     displayLastLabel.Text = ""; 
     nameTextBox.Text = ""; 
    } 

    private void formatNameButton_Click(object sender, EventArgs e) 
    { 
     clearScreenButton.Focus(); 
    } 
} 
+1

初期値をfullnameに割り当てます。すなわち、 'bool fullname = false;' – Nkosi

答えて

0

なし初期値を持つ変数を宣言してからは何の意味も持たない値を決定するものではありませんif文での方法でそれを返します。 returnに値を設定する場合は、fullnameに値を割り当てる必要があります。

bool fullname = false; 
1

は常にC#のためにこれらの3つのルールを覚えている:最初にこの変数の初期化

  1. は、変数を使用するには、それが初期化されなければなりません。
  2. フィールドメンバは既定値で初期化されます
  3. ローカルは既定値で初期化されません。

ルール1を破る:初期化する前にfullnameを使用しています。次のプログラムは、これを明確になります。

public class Program 
{ 
    public static void Main() 
    { 
     // This is a local and NOT initialized 
     int number; 
     var person = new Person(); 
     Console.WriteLine(person.age); // This will work 
     Console.WriteLine(number); // This will not work 
     Console.Read(); 
    } 
} 

public class Person 
{ 
    // This is a field so it will be initialized to the default of int which is zero 
    public int age; 
} 

はあなたの問題を解決するには、fullnameを初期化する必要があります。

bool fullname = false; 

は、私は、このようなisFullNameとして、より読みやすい名前に変数の名前を変更します。

関連する問題