2016-10-18 7 views
0

Dies ist das erste Mal, dass ich versuche, eine separate Klasse in eine Formularklasse zu implementieren, anstatt alles in der Formklasse zu haben. Wie gehe ich vor, um die beiden zu verbinden? Wenn ich auf die Schaltfläche klicke, wollte ich in der Lage sein, die Nachricht mit MessageBox.Show anzeigen zu lassen.MessageShow in einer anderen Klasse?

Danke.

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

Antwort

2

Sie gemacht haben, die Nested Methode static, so dass Sie nur es so nennen kann:

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

Ich gehe davon aus, dass die Note von einem Textfeld stammt, das Sie im Formular haben, und ich habe alle Validierungen und Fehlerbehandlungen übersprungen.


Auch die Number Eigenschaft und Feld tun nichts in dem Code, den Sie gezeigt haben.

Sie könnten auch finden Code Review.SE ein guter Ort, um Feedback zu Ihrem Code-Stil zu erhalten.

+1

Sie so viel Dank! Ich bin definitiv Lesezeichen Code Review.SE! –

+1

@RustyShackleford Bitte beachten Sie, dass CodeReview Ihnen nicht helfen wird * write * code, wie diese Antwort. Es ist für bereits funktionierenden Code. – user2296177

1

Anstelle des Rückgabetyps int. Rückgabetyp string wird richtiger sein, Sie müssen MessageBox.Show() nicht immer wieder wiederholen. Oder mach es einfach void.

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

und MessageBox Teil sollte so sein,

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

Hoffnung hilft,

Verwandte Themen