Hallo, ich schreibe an einem WindowsForms Projekt mit C#. Nun habe ich eine Klasse für Berechnungen gebaut und will Messageboxes verwenden können.
Es scheint zu klappen, nur das Close() macht mir noch Probleme.
Die Form heißt Form1.cs
in Calcualtion.cs soll nun ein MsgBox Dialog abgearbeitet werden:
if (CircleDataTmp.asm == assembly.NONE)
{
string msg = "Für mindestens einen Durchmesser wurde keine Bauteiltype gefunden.";
string caption = "Hinweis";
MessageBoxButtons button = MessageBoxButtons.OK;
DialogResult result = MessageBox.Show(msg, caption, button);
if (result == DialogResult.OK)
{
; // do your stuff
this.Close();
}
}
Das Problem ist bei this.Close();
wie aknn man das anpassen?
Fehlermeldung:
Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Fehler CS1061 "Calculation" enthält keine Definition für "Close", und es konnte keine Close-Erweiterungsmethode gefunden werden, die ein erstes Argument vom Typ "Calculation" akzeptiert (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis). CSgeneratorWin D:\igm\dxf\Tool\CSgeneratorWin\CSgeneratorWin\CSgeneratorWin\Calculation.cs 490 Aktiv
Die Klasse Calcualtion hat keine Methode Close(). Was soll this.Close() denn Deiner Meinung nach machen?
Das Vorhaben riecht absolut nach einer Verletzung der Schichtenverantwortlichkeiten.
Eine Klasse für Business Logik wie Berechnungen sollte niemals auf UI Elemente zugreifen. Niemals.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Danke, tatsächlich habe ich 3 Klasse.
Eine für Ordner/Verzeichnis/ Dateiverwaltung
Eine die Form
Eine für Berechnungen.
Wie implementiere ich nun eine Schnittstelle, wenn bei der Berechnung zB Fehler erkannt wurden.
Wird die Berechnungen Klasse in der Form Klasse aufgerufen?
Augenblicklich laufen beide Klassen in der Form zusammen bzw wird eine Instanz jeweils erzeugt.
Entweder durch entsprechende Rückgaben, Exception oder Events.
Kommt halt auf die Gesamtsituation an. Hört sich hier nach einem Abbruch an, daher vermutlich eher eine Exception.
Aber sicherlich nicht mit UI-Logik in der Business Logik. 😉
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code