OpenFileDialog ShowDialog -Methode gibt einen nullbaren Booleschen Wert zurück, der auf" true "gesetzt wird, wenn der Benutzer auf" OK "geklickt hat, oder auf" false ", wenn er auf" Abbrechen "geklickt hat. Wann gibt es null
zurück? Die Dokumentation sagt nicht.
Dies wird in den unten stehenden Fragen angegeben, aber ich erwähne hier, dass Programmierung WPF (Chris verkauft, Ian Griffiths) sagt:
ShowDialog gibt immer wahr oder zurück falsch. ... erst nach einem Dialog hat wurde gezeigt, aber bevor es geschlossen wurde ist DialogResult null.
Ähnliche Frage: Wann würde ShowDialog () null zurückgeben?
Nach dem .NET-Reflektor wird Microsoft.Win32.OpenFileDialog.ShowDialog
von einer Basisklasse implementiert, Microsoft.Win32.CommonDialog
. Diese Implementierung hat nur eine Rückkehrklausel:
RunDialog
liefert eine bool
, nicht eine bool?
.
bool?
ist nur eine C # Kurzschrift für System.Nullable<bool>
. Der -Konstruktor von System.Nullable<bool>
setzt entsprechend dem Reflektor den Wert des Nullwerts auf seinen Wert Parameter, und markiert seine Eigenschaft hasValue als wahr.
Also ... sollten Sie niemals ein null
Ergebnis erhalten. Ein Schnelltest bestätigt, dass das Schließen des Dialogs ohne Abbrechen (rote x Schaltfläche) tatsächlich einen false
-Wert, nicht null
zurückgibt.
Die Windows Forms-Version von OpenFileDialog gibt ein DialogResult zurück, das einen weiteren Bereich aufweist von Werten .
Tags und Links wpf winapi openfiledialog savefiledialog