OpenFileDialog '' s Showdialog La méthode renvoie une nullable booléenne, définie sur true si l'utilisateur cliqué Ok ou faux s'il a cliqué sur Annuler. Quand retourne-t-il null code>? La documentation ne dit pas. P>
3 Réponses :
Ceci est indiqué dans les questions liées ci-dessous, mais je vais mentionner ici que Programmation WPF (Chris vend, Ian Griffiths) dit: P>
showdialog reviendra toujours vrai ou faux. ... seulement après qu'un dialogue ait été montré mais avant qu'il soit fermé est NIDOGRESULT NULL. P> blockQuote>
Question similaire: Quand ShowDioriog () renvoie null? P>
and: Pourquoi dialogresult est-il une nullable bool dans WPF? a> p>
Selon le réflecteur .NET , SO ... Vous ne devriez pas jamais obtenir un la version Windows Formulaires OpenFileDialog renvoie une dialogue, qui a un une plage plus large de valeurs . p> p> Microsoft.win32. Openfiledialog.showdialog code> est implémenté par une classe de base,
Microsoft.win32.commonialog code>. Cette implémentation n'a qu'une clause de retour:
rundialog code> renvoie un
bool code>, pas un
bool? Code>. p>
bool? code> est juste un C # sténographique pour
System.NULLABLE
System.Nullable
null code> résultat. Un test rapide confirme que la fermeture de la boîte de dialogue sans annulation (Bouton X rouge) renvoie en effet une valeur de valeur
fausse code>, pas un
null code>. P>
Je suppose que OpenFileDialog retourne bool? être cohérent avec d'autres dialogues WPF qui peuvent réellement renvoyer un résultat nul. P>
"Curiosité" est une réponse parfaitement bonne, mais je suis curieux de savoir pourquoi vous demandez? Pourquoi ne pas simplement comparer ce qu'il revient à «vrai» (Tryparse, etc., etc.) et roulez-vous?
Je me demandais simplement pourquoi ils utilisent un nullable booléen sur une norme standard. Comparaison contre les vrais œuvres fines, comme vous l'avez suggéré.
Maintenant, tu m'as curieux aussi. J'espère que quelqu'un va venir avec une bonne réponse!
Est-ce qu'une nullable Boolean n'est revenue que par WPF Showdialog (et non Winforms ')?