ich meine eigene MessageBox mit meinem eigenen Enum MessageBoxButton erstellt haben:implizite Umwandlung für ENUM-Wert
public enum MyMessageBoxButton
{
OK = MessageBoxButton.OK,
OKCancel = MessageBoxButton.OKCancel,
YesNoCancel = MessageBoxButton.YesNoCancel,
YesNo = MessageBoxButton.YesNo,
NowLaterCancel = 5,
}
Wie Sie sehen können, ist es wie System.Windows.MessageBoxButton mit 1 Wert mehr.
Für meine Klasse MyMessageBox habe ich die Funktion:
public static MessageBoxResult Show(String caption, String message, MyMessageBoxButton button, MessageBoxImage icon)
{
...
}
Gibt es eine Möglichkeit Show
mit MessageBoxButton
zu nennen und werfen implizit den Wert auf einen MyMessageBoxButton
?
Kann ich eine Änderung an Ihrer Lösung vorschlagen? Sie haben eine Aufzählung, die die möglichen Kombinationen von Schaltflächen auflistet. Sie haben jedoch einen einzelnen Wert für mehrere Varianten erstellt. Dies ist unflexibel. Ich würde Folgendes vorschlagen: None = 0, OK = 1, Yes = 2, No = 4, Cancel = 8, Later = 16 Auf diese Weise können Sie mit einer bitweisen Operation trainieren, welche Tasten verfügbar sind. 1 + 8 = 9 (OK, Abbrechen) 2 + 4 = 6 (Ja, Nein) usw. –
Haben Sie 'switch/case' probiert? Was du Casting * nennst * ist tatsächlich Mapping *, aber du musst etwas für diesen zusätzlichen Wert tun, nicht wahr? – Sinatr
Ich habe versucht, Lösung von itsme86 zur Verfügung stellen und es funktioniert. Wie ich nicht mitbekomme, sollte ich einen 'try/catch' verwenden –