Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无效UUID的自定义异常处理程序_C#_Uuid - Fatal编程技术网

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或空格,这会检测到
空的
字符串。空的