测试字符串是否为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附加到文件夹名称来指定名称空间扩展名。我可能正在解析文件夹名称,检查是否在final后面的文本。是GUID。 c:\Program Files c:\Program Files.old c:\Users c:\Users.old …