C# 如何检查传入的guid参数是否无效

C# 如何检查传入的guid参数是否无效,c#,guid,C#,Guid,我正在尝试创建一些测试数据,我想向用户返回一条错误消息,告知传入的guid的格式无效-举个例子说明如何应用它将非常好 我正在使用的正确guid格式: Guid user = new Guid("FF2214F8-5393-4B5A-B1CA-3620F85D9131"); 传递给测试的guid无效,并且希望将消息返回给用户以通知而不是中断: Guid user2 = new Guid("UserName"); 我用于传入的方法: public void UserName(user2) { .

我正在尝试创建一些测试数据,我想向用户返回一条错误消息,告知传入的guid的格式无效-举个例子说明如何应用它将非常好

我正在使用的正确guid格式:

Guid user = new Guid("FF2214F8-5393-4B5A-B1CA-3620F85D9131");
传递给测试的guid无效,并且希望将消息返回给用户以通知而不是中断:

Guid user2 = new Guid("UserName");
我用于传入的方法:

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

如果我正确理解了您要测试的Guid
user2
,请尝试:

编辑:根据您的评论,我理解问题在于您正在向该方法传递一个无效的Guid,因此当您创建要作为参数传递给该方法的变量时,会发生异常。这有帮助吗

Guid user2; 
if(Guid.TryParse("UserName", out user2))
{
 UserName(user2)
}
else
{
//do whatever you need to report the error
}
我不确定从何处获得“用户名”,但这里的要点是,无论您在何处尝试从字符串创建
Guid
,并且不确定该字符串是否有效,您都需要使用
Guid.TryParse
方法

使用该方法


您当前的问题是什么?当我测试我所拥有的内容时,它会中断并给出错误消息:
system.formatexception:guid应该包含32位数字和4个破折号
我希望在它中断之前捕获它并报告给用户。\n当我编译时,我收到此错误消息:
参数1:无法从system.guid转换为字符串
甚至虽然usr和result都是guid,但它是一个guid,但我传入了一个字符串而不是32个字母数字组合来进行测试-这就是导致它的原因吗?我以为
user2
是一个字符串。。如果要在方法中进行此检查,则需要接收字符串,否则应在调用方的codec中执行此检查。是否将参数的类型更改为字符串?这是最简单的解决方案,我做一次try-catch,然后捕获
格式异常
,并通过
控制台通知用户。writeline
Guid user2; 
if(Guid.TryParse("UserName", out user2))
{
 UserName(user2)
}
else
{
//do whatever you need to report the error
}
Guid userGuid;
if (Guid.TryParse(user2, out userGuid))
{
   // Do something with the guid
}
else
{
   //throw exception...
}