C# 字节数组是否有Guid.TryParse?

C# 字节数组是否有Guid.TryParse?,c#,.net,bytearray,guid,C#,.net,Bytearray,Guid,需要检查字符串是否包含有效的 还有(字节[]) 我缺少的是一个采用字节数组的TryParse方法 目前,我正在执行类似的操作来检查字节数组是否是有效的GUID: // ... try { new Guid(bytes); return true; } catch (ArgumentException) { return false; } // ... 当然,这在性能和编码风格上都很糟糕,因为我使用异常来控制程序流 我的问题: 是否有一种合理、快速、无异常的方法来检查字节

需要检查字符串是否包含有效的

还有(
字节[]

我缺少的是一个采用字节数组的
TryParse
方法

目前,我正在执行类似的操作来检查字节数组是否是有效的GUID:

// ...
try
{
    new Guid(bytes);
    return true;
}
catch (ArgumentException)
{
    return false;
}
// ...
当然,这在性能和编码风格上都很糟糕,因为我使用异常来控制程序流

我的问题:


是否有一种合理、快速、无异常的方法来检查字节数组是否包含GUID?

不,没有。事实上,写一个很容易,你只需要确保

  • 字节数组不是空的
  • 字节数组的长度为16

  • 不,没有。事实上,写一个很容易,你只需要确保

  • 字节数组不是空的
  • 字节数组的长度为16

  • 事实并非如此:;一些
    byte[16]
    不是
    GUID
    @DmitryBychenko如果不是这样,那么
    newguid(byte[]b)
    也不正确,因为在构造函数中只检查了两个要求。谢谢!这些检查似乎与类似,所以我想这足以让我自己检查。@UweKeim。我检查了FCL的源代码。但根据之前的评论,RFC有点不同。@DmitryBychenko一些
    字节[16]
    不是合适的GUID,但没有人关心:)有很多人(遗憾地)使用
    GUID
    来表示并非全局唯一的数字。包括许多GUID生成的实现,它们只是带有32位种子的简单随机数。哦:)在任何情况下,
    GUID
    类都不关心,而这似乎是我们唯一关心的事情;一些
    byte[16]
    不是
    GUID
    @DmitryBychenko如果不是这样,那么
    newguid(byte[]b)
    也不正确,因为在构造函数中只检查了两个要求。谢谢!这些检查似乎与类似,所以我想这足以让我自己检查。@UweKeim。我检查了FCL的源代码。但根据之前的评论,RFC有点不同。@DmitryBychenko一些
    字节[16]
    不是合适的GUID,但没有人关心:)有很多人(遗憾地)使用
    GUID
    来表示并非全局唯一的数字。包括许多GUID生成的实现,它们只是带有32位种子的简单随机数。哦:)在任何情况下,
    GUID
    类都不关心,而这似乎是我们唯一关心的事情。