Das wird dir ziemlich nah, und ich benutze es in der Produktion und hatte noch nie eine Kollision. Wenn Sie sich jedoch den Konstruktor für eine GUID in Reflector ansehen, werden Sie alle durchgeführten Prüfungen sehen.
public static bool GuidTryParse(string s, out Guid result)
{
if (!String.IsNullOrEmpty(s) && guidRegEx.IsMatch(s))
{
result = new Guid(s);
return true;
}
result = default(Guid);
return false;
}
static Regex guidRegEx = new Regex("^[A-Fa-f0-9]{32}$|" +
"^({|\\()?[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}(}|\\))?$|" +
"^({)?[0xA-Fa-f0-9]{3,10}(, {0,1}[0xA-Fa-f0-9]{3,6}){2}, {0,1}({)([0xA-Fa-f0-9]{3,4}, {0,1}){7}[0xA-Fa-f0-9]{3,4}(}})$", RegexOptions.Compiled);
Insbesondere gesetzt, ein GUIDConverter, die eingebaut ist. Http://msdn.microsoft.com/en -us/library/system.componentmodel.guidconverter.aspx –
TypeDescriptor.GetConverter (typeof (Guid)) – leppie
@leppie können Sie mir sagen, die Vor- und Nachteile der Verwendung von GUID als String anstatt dann als DataTyps GUID – cracker