C# 无效UUID的自定义异常处理程序
这是我依靠C# 无效UUID的自定义异常处理程序,c#,uuid,C#,Uuid,这是我依靠Win32\u ComputerSystemProduct结构检索主板UUID的方法 #region "UUID" public static string getUUID() { string UUID = string.Empty; try { ManagementClass mc = new ManagementClass("Win32_ComputerSystemProduct");
Win32\u ComputerSystemProduct
结构检索主板UUID的方法
#region "UUID"
public static string getUUID()
{
string UUID = string.Empty;
try
{
ManagementClass mc = new ManagementClass("Win32_ComputerSystemProduct");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
UUID = mo.Properties["UUID"].Value.ToString();
break;
}
UUID = "";
if (UUID.Equals(string.Empty)
|| UUID.Equals("")
|| UUID.Equals(null)
|| UUID.Equals("FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF")
|| UUID.Equals("00000000-0000-0000-0000-000000000000"))
{
throw new System.Exception("UUID is invalid.");
}
return UUID;
}
catch (Exception ex)
{
Console.WriteLine("Error Message: " + ex.Message);
}
return UUID;
}
#endregion
我有一个内置的异常处理程序,如果字符串是我列出的字符串,它会抛出一个错误,因为C#隐式地不知道像FFF…FFF
这样的字符串无效/错误
我重新定义了UUID=“”
测试此方法,例如,如果运行此脚本的用户具有空白UUID
我在想,这样做对吗?我不确定返回UUID的
是否仍然返回UUID,即使它为空,或者FFFFFFFF-FFFF-FFFF-FFFF-ffffff-FFFFFFFF
对于初学者,在if语句之前,您将UUID设置为null
接下来,您的if应该如下所示:
if (String.IsNullorEmpty(UUID)
|| UUID.Equals("FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF")
|| UUID.Equals("00000000-0000-0000-0000-000000000000"))
{
throw new System.Exception("UUID is invalid.");
}
return UUID;
除此之外,整个if语句应该在foreach
中。Equals(string.Empty)
和.Equals(“”
是相同的。.IsNullOrEmpty
应该在这里使用。你确定吗?我读到他们有细微的不同。哦,好吧,它不会对性能造成影响,所以我就把它留在那里。这段代码有很多错误,最好还是继续发布-你能详细说明一下“这段代码有很多错误吗”?我不能做UUID.IsNullorEmpty
,但我可以做string.IsNullorEmpty(UUID)
。那是一样的吗?是的,那是一样的。抱歉,只是或多或少地试图理解函数。将编辑帖子。谢谢,我已做了更改。@TheGreenColla-如果您使用.Net 4,您可能希望使用isNull或空格,这会检测到空的像字符串。空的或”
?