在这种情况下,有没有办法解决“并非所有代码路径都返回一个值”? [关闭]

问题描述 投票:0回答:0

鉴于这段代码采用整数数组并检查哈希集中的重复项:

public static int ReturnDuplicatedNumber(HashSet<int> hashSet, int[] integerArray)
    {
        for (int index = 0; index < integerArray.Length; index++)
        {
            if (!hashSet.Add(integerArray[index]))
            {
                return integerArray[index];
            }
        }
    //here
    }

在它说//here不需要返回整数的地方,我能做些什么吗?也许发送某种没有找到重复项的异常?

我考虑过如果没有找到重复项就返回 0,但感觉有点不对劲,因为数组中可能有一个 0 重复项,这可能会把事情搞砸。

我已经尝试过这种方式,返回一个字符串而不是一个 int,并且它有效,但它似乎只是一种变通方法而不是实际修复。如果我真的需要从函数返回一个 int 怎么办?

public static string ReturnDuplicatedNumber(HashSet<int> hashSet, int[] integerArray)
        {
            for (int index = 0; index < integerArray.Length; index++)
            {
                if (!hashSet.Add(integerArray[index]))
                {
                    return integerArray[index].ToString();
                }
            }

            return "No duplicates found";
        }

解决这个问题最聪明的方法是什么?

c# logic
© www.soinside.com 2019 - 2024. All rights reserved.