length example convertir c#

convertir - system.guid c# example



Cómo intentar convertir una cadena a un Guid (6)

Esto te acercará bastante, y lo uso en producción y nunca he tenido una colisión. Sin embargo, si miras al constructor para obtener un guid en reflector, verás todas las comprobaciones que hace.

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);

Esta pregunta ya tiene una respuesta aquí:

No encontré el método TryParse para el Guid. Me pregunto cómo otros se encargan de convertir un guid en formato de cadena en un tipo de guía.

Guid Id; try { Id = new Guid(Request.QueryString["id"]); } catch { Id = Guid.Empty; }


Lamentablemente, no hay un equivalente TryParse (). Si crea una nueva instancia de un System.Guid y pasa el valor de la cadena, puede capturar las tres posibles excepciones que arrojaría si no es válida.

Esos son:

  • ArgumentNullException
  • FormatException
  • OverflowException

He visto algunas implementaciones donde puede hacer una expresión regular en la cadena antes de crear la instancia, si solo está tratando de validarla y no crearla.


Si todo lo que quiere es una comprobación de errores muy básica, puede verificar la longitud de la cadena.

string guidStr = ""; if( guidStr.Length == Guid.Empty.ToString().Length ) Guid g = new Guid( guidStr );


usa un código como este:

new Guid("9D2B0228-4D0D-4C23-8B49-01A698857709")

en lugar de "9D2B0228-4D0D-4C23-8B49-01A698857709" puede establecer el valor de su cadena



new Guid(string)

También podrías mirar usando un TypeConverter .