例外をスローせずに文字列がGUIDかどうかをテストしますか?
文字列をGuidに変換しようとしていますが、例外のキャッチに依存したくありません( パフォーマンス上の理由から-例外は高価です 使いやすさの理由から-デバッガーがポップアップします 設計上の理由から-期待されることは例外ではありません つまり、コード: public static Boolean TryStrToGuid(String s, out Guid value) { try { value = new Guid(s); return true; } catch (FormatException) { value = Guid.Empty; return false; } } 適切ではない。 私はRegExを使用してみますが、GUIDは括弧で囲むことができるため、中かっこで囲み、何もラップしないと、困難になります。 さらに、特定のGuid値が無効であると思いました(?) アップデート1 ChristianKは、FormatExceptionすべてではなく、のみをキャッチすることをお勧めしました。質問のコードサンプルを変更して提案を追加しました。 アップデート2 スローされた例外を心配する必要があるのはなぜですか?本当に頻繁に無効なGUIDを期待していますか? 答えはイエスです。私は-私はTryStrToGuidを使用していた理由です午前不良データを期待します。 例1 名前空間の拡張子は、GUIDをフォルダー名に追加することで指定できます。フォルダー名を解析して、最後のテキストの後にテキストがあるかどうかを確認している可能性があります。GUIDです。 c:\Program Files c:\Program Files.old c:\Users c:\Users.old c:\UserManager.{CE7F5AA5-6832-43FE-BAE1-80D14CD8F666} …