Wann gibt Microsoft.Win32.OpenFileDialog.ShowDialog () null zurück?

8

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.

    
M. Dudley 11.08.2009, 17:43
quelle

3 Antworten

11

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?

Und: Warum ist DialogResult in WPF leerbar?

    
lance 11.08.2009, 18:05
quelle
3

Nach dem .NET-Reflektor wird Microsoft.Win32.OpenFileDialog.ShowDialog von einer Basisklasse implementiert, Microsoft.Win32.CommonDialog . Diese Implementierung hat nur eine Rückkehrklausel:

%Vor%

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 .

    
Oren Trutner 11.08.2009 18:06
quelle
1

Ich vermute, dass OpenFileDialog bool zurückgibt? konsistent mit anderen WPF-Dialogen sein, die tatsächlich ein Null-Ergebnis liefern können.

    
Nir 12.08.2009 08:17
quelle