Domanda

OpenFileDialog s ' ShowDialog metodo restituisce un valore booleano nullable, impostato su true se il utente fa clic su OK o false se si fa clic su Cancella. Quando ha tornare null? La documentazione non lo dice.

È stato utile?

Soluzione

Questo è indicato nelle questioni legate al di sotto, ma io qui ricordare che Programmazione WPF (Chris Sells, Ian Griffiths) dice:

  

ShowDialog restituisce sempre vero o   falsa. ... Solo dopo una finestra ha   stato dimostrato ma prima è stata chiusa   è nullo DialogResult.

interrogazione: Quando farebbe ShowDialog () ritorna null

E:? Perché DialogResult un bool annullabile in WPF

Altri suggerimenti

Secondo il NET riflettore , Microsoft.Win32.OpenFileDialog.ShowDialog è implementato da una classe base , Microsoft.Win32.CommonDialog. Che l'attuazione ha clausola di un solo ritorno:

return new bool?(this.RunDialog(activeWindow));

RunDialog restituisce un bool, non un bool?.

bool? è solo una C # stenografia per System.Nullable<bool>. di System.Nullable<bool> , secondo riflettore nuovamente, imposta il valore di l'annullabile al suo parametro, e segna la sua proprietà hasValue come vero.

Quindi ... non si dovrebbe mai ottenere un risultato null. Un test rapido conferma che la chiusura della finestra di dialogo senza cancellare (x tasto rosso) restituisce infatti un valore false, non un null.

Il Windows Forms versione di OpenFileDialog restituisce un DialogResult, che ha una ampia gamma di valori .

La mia ipotesi è che OpenFileDialog ritorna bool? essere coerenti con altre finestre WPF che in realtà possono restituire un risultato nullo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top