2016-10-18 6 views
0

フォームクラスに別のクラスを実装するのではなく、初めてフォームクラスに実装しようとしました。どのように2つを接続するのですか?ボタンをクリックすると、MessageBox.Showで文字の等級を表示できるようにしたいと考えました。別のクラスのMessageShow?

ありがとうございました。

のForm1.cs

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 

    } 

    public void button1_Click(object sender, EventArgs e) 
    { 
     Grade Nested = new Grade(); 

    } 
} 

Class.cs

class Grade 
{ 
    private int number; 

    public int Number 
    { 
     get { return number; } 

     set { number = value; } 
    } 

    public static int Nested(int grade) 
    { 

     if (grade >= 93) 
     { 
      MessageBox.Show("A"); 
     } 

     else if (grade >= 90 && grade <= 92) 
     { 
      MessageBox.Show("A-"); 
     } 

     else if (grade >= 87 && grade <= 89) 
     { 
      MessageBox.Show("B+"); 
     } 

     else if (grade >= 83 && grade <= 86) 
     { 
      MessageBox.Show("B"); 
     } 

     else if (grade >= 80 && grade <= 82) 
     { 
      MessageBox.Show("B-"); 
     } 

     else if (grade >= 77 && grade <= 79) 
     { 
      MessageBox.Show("C+"); 
     } 

     else if (grade >= 73 && grade <= 76) 
     { 
      MessageBox.Show("C"); 
     } 

     else if (grade >= 70 && grade <= 72) 
     { 
      MessageBox.Show("C-"); 
     } 

     else if (grade >= 67 && grade <= 69) 
     { 
      MessageBox.Show("D+"); 
     } 

     else if (grade >= 63 && grade <= 66) 
     { 
      MessageBox.Show("D"); 
     } 

     else if (grade >= 60 && grade <= 62) 
     { 
      MessageBox.Show("D-"); 
     } 

     else if (grade <= 59) 
     { 
      MessageBox.Show("F"); 
     } 
     return; 
    } 
} 

答えて

2

あなたはNested方法staticを行っているので、あなたはちょうどこのようにそれを呼び出すことができます。

public void button1_Click(object sender, EventArgs e) 
{ 
    var grade = int.Parse(someTextBox.Text); 
    Grade.Nested(grade); 
} 

私はグレードがあなたがフォーム上にあるテキストボックスから来ていると仮定しています。私はすべての検証とエラー処理をスキップしました。


また、Numberプロパティおよびフィールドは、あなたが示されているコードで何もしません。

Code Review.SEあなたのコーディングスタイルについてのフィードバックをお寄せください。

+1

はどうもありがとう、助け!私は間違いなくCode Review.SEをブックマークしています! –

+1

@RustyShackleford CodeReviewはこの回答のように*書く*コードを助けません。それは既に動作しているコード用です。 – user2296177

1

返品タイプの代わりにint。返品タイプstringがより適切になります。MessageBox.Show()を何度も繰り返す必要はありません。または、それをvoidにしてください。

public static string Nested(int grade) 
     { 
      if (grade >= 93) 
      { 
       return "A"; 
      } 
.... 

MessageBox部分はこのようにする必要があり、

string test = Nested.Nested(number); 
MessageBox.Show(test); 

希望は