.NET 3.5中有GUID.TryParse()吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (12)

Guid.TryParse在.NET 4.0中可用

很明显,在.NET CLR 2.0中没有公共的GUID.TryParse()。

因此,我正在研究正则表达式(又名搜索引擎),每次发现一个关于RegEx A的注释部分都有激烈的争论,请使用RegEx B.然后有人会编写Regex C yadda yadda

无论如何,我决定要做的是这件事,但我感觉不好。

public static bool IsGuid (string possibleGuid) {

    try {
      Guid gid = new Guid(possibleGuid);
      return true;    
    } catch (Exception ex) {
      return false;
    }
}

很显然,我不喜欢这样,因为自从第一天就开始钻入我的行列,以避免抛出异常,如果你可以用它来防御的话。

有谁知道为什么在.NET Framework中没有公共的Guid.TryParse()?

有没有人有真正的正则表达式,适用于所有GUID?

提问于
用户回答回答于

在CLR 2.0及更早版本中没有Guid.TryParse。它将从CLR 4.0和Visual Studio 2010开始提供。

至于为什么没有。这些类型的问题通常很难正确回答。这很可能是一个疏忽或时间限制问题。如果您在反射器中打开mscorlib,您会看到实际上有一个名为TryParse的方法,Guid但它是私有的。它在某些情况下也会引发异常,所以它不是一个很好的说法Int32.TryParse

用户回答回答于

扫码关注云+社区