のドキュメントにInt32.TryParse
よると、メソッドが false を返す場合、out パラメータがゼロに設定されます。Enum.TryParse のドキュメントに同様の保証はありません。メソッドは out パラメータを何かに設定する必要があり、ゼロが最も理にかなっているからです。
保証は別の場所で指定または文書化されていますか、それとも本当に保証はありませんか?
のドキュメントにInt32.TryParse
よると、メソッドが false を返す場合、out パラメータがゼロに設定されます。Enum.TryParse のドキュメントに同様の保証はありません。メソッドは out パラメータを何かに設定する必要があり、ゼロが最も理にかなっているからです。
保証は別の場所で指定または文書化されていますか、それとも本当に保証はありませんか?
MSDNによると
valueがTEnumの名前付き定数に対応しない名前である場合、メソッドはfalseを返します。valueがTEnum列挙の基になる値を表さない整数の文字列表現である場合、メソッドは、基になる値が整数型に変換された値である列挙メンバーを返します。この動作が望ましくない場合は、IsDefinedメソッドを呼び出して、整数の特定の文字列表現が実際にTEnumのメンバーであることを確認します。
out
だから私は、呼び出しが戻ってきた場合の値に絶対に依存しませんfalse
!
「何か」より具体的であることが保証されるとは思いません。ドキュメントでは特に指定されていないため (これが唯一の公式ドキュメントです)、単に戻り値を使用しますが、return が false の場合は out パラメータを無視します。
補足: Int32.TryParse が解析に失敗した場合に out パラメーターがどのように設定されるかを指定するのは間違っていると思います。特定のケースごとに「実際には数値ではない」という意味を独自に決定する必要があるためです...しかし、それは私の個人的な意見です。