Is there a GUID.TryParse() in .NET 3.5?

后端 未结 7 1672
遇见更好的自我
遇见更好的自我 2021-01-07 16:25

UPDATE

Guid.TryParse is available in .NET 4.0

END UPDATE

Obviously there is no public GUID.TryParse() in .NET CLR

7条回答
  •  陌清茗
    陌清茗 (楼主)
    2021-01-07 16:37

    This implementation of a TryParse for Guids uses a try-catch in order to catch missformed Guids. It is implemented as extension method und must be placed in a static class:

    public static bool TryParseGuid(this string s, out Guid guid)
    {
        try {
            guid = new Guid(s);
            return true;
        } catch {
            guid = Guid.Empty;
            return false;
        }
    }
    

    It can be called with

    string s = "{CA761232-ED42-11CE-BACD-00AA0057B223}";
    Guid id;
    if (s.TryParseGuid(out id) {
        // TODO: use id
    } else {
        // Sorry not a valid Guid.
    }
    

    Starting with C# 7.0 / Visual Studio 2017, you can call it with:

    string s = "{CA761232-ED42-11CE-BACD-00AA0057B223}";
    if (s.TryParseGuid(out Guid id) {
        // TODO: use id
    } else {
        // Sorry not a valid Guid.
    }
    

    UPDATE

    Since Visual Studio 2010 / .NET Framework 4.0, System.Guid provides a TryParse and a TryPareExact method.

提交回复
热议问题