2013-03-15 5 views
2

J'essaie de créer des données de test et je veux retourner et message d'erreur à l'utilisateur que le passé dans guid n'est pas dans un format valide - un exemple de la façon dont cela pourrait être appliqué sera grandecomment vérifier le paramètre guid invalide passé en

format approprié guid que j'utilise:

Guid user = new Guid("FF2214F8-5393-4B5A-B1CA-3620F85D9131"); 

guid invalide que je passe pour tester et je voudrais renvoyer un message à l'utilisateur d'informer plutôt que de casser:

Guid user2 = new Guid("UserName"); 

méthode que j'utiliser pour passer:

public void UserName(user2) 
{ 
.... 
} 
+0

Quel est votre problème actuel? – Jon

+0

quand je teste ce que je l'ai casse et donne le message d'erreur: 'system.formatexception: guid doit contenir 32 chiffres avec 4 tirets' que je veux attraper avant qu'il casse et rapport à l'utilisateur. \ – Masriyah

Répondre

9

Si je comprends bien user2 est le Guid que vous voulez tester, dans ce cas essayer Guid.TryParse:

Guid result; 
    if(Guid.TryParse(user2, out result)) 
    { 
    //success (result variable has been assigned the Guid value) 
    } 
    else 
    { 
    //error 
    } 

Edit: Selon vos commentaires, je comprenez que le problème est que vous passez une méthode Guid non valide, donc l'exception se produit lorsque vous créez la variable que vous allez transmettre à la méthode en tant que paramètre. Est-ce que cela aide?

Guid user2; 
if(Guid.TryParse("UserName", out user2)) 
{ 
UserName(user2) 
} 
else 
{ 
//do whatever you need to report the error 
} 

Je ne sais pas où vous obtenez « UserName » mais le point est que chaque fois que vous essayez de créer une Guid d'une chaîne et que vous n'êtes pas sûr si la chaîne est valide, vous devez utiliser Guid.TryParse méthode

+0

quand j'ai compilé j'ai eu Message d'erreur: 'Argument 1: impossible de convertir system.guid en string' même si usr et result sont des guids – Masriyah

+0

c'est un guid mais j'ai passé une chaîne au lieu du combo 32 alpha numérique à tester - est-ce que c'est ce qui le cause ? – Masriyah

+0

Je pensais 'user2' était une chaîne .. vous aurez besoin de recevoir une chaîne si vous voulez faire cette vérification dans votre méthode, sinon cette vérification devrait être faite dans le code de l'appelant – jorgehmv

2

utilisez la méthode Guid.TryParse

Guid userGuid; 
if (Guid.TryParse(user2, out userGuid)) 
{ 
    // Do something with the guid 
} 
else 
{ 
    //throw exception... 
} 
Questions connexes