布尔函数未返回值错误

时间:2015-04-22 14:40:17

标签: c#

我编写了以下函数,但是我收到的错误是"并非所有代码路径都返回值"。我已经在线查看了这个问题并搜索了有关堆栈溢出的问题,但我只能看到我错过/做错了什么。

我试图在别处的if语句中使用此函数来检查此函数是返回true还是false。如果是真的,它会起作用。如果为false,则会向用户返回错误。

private bool IsStatusChangeValid(CommandResult result)
{
    var file = FileViews.FileGet(fileId);

    // LOOP THAT CHECKS IF STATUS IS CHANGED TO "VOIDED"
    // THEN NOTIFIES USER IF THERE ARE NON-VOIDED ITEMS IN FILE
    foreach (var item in file.FileItems)
    {
        item.File = file;

        // ONLY IF ITEMS EXIST
        if (item.ItemCode.Length > 0)
        {
            // CHECK IF STATUS IS CHANGED TO "VOIDED"
            if (newDescription.Equals("Voided"))
            {
                if (item.ItemStatusID != ItemStatusIDConstants.Voided)
                {
                    result.Success = false;
                }
                return result.Success;
            }
        }
    }
}

4 个答案:

答案 0 :(得分:2)

在你的foreach之后,它应该返回一个值。

private bool IsStatusChangeValid(CommandResult result)
{
    var file = FileViews.FileGet(fileId);

    // LOOP THAT CHECKS IF STATUS IS CHANGED TO "VOIDED"
    // THEN NOTIFIES USER IF THERE ARE NON-VOIDED ITEMS IN FILE
    foreach (var item in file.FileItems)
    {
        item.File = file;

        // ONLY IF ITEMS EXIST
        if (item.ItemCode.Length > 0)
        {
            // CHECK IF STATUS IS CHANGED TO "VOIDED"
            if (newDescription.Equals("Voided"))
            {
                if (item.ItemStatusID != ItemStatusIDConstants.Voided)
                {
                    result.Success = false;
                }
            return result.Success;
            }
        }
    }

    return something here;
}

答案 1 :(得分:0)

如果file.FileItems不包含任何内容,该怎么办?什么回来呢?

如果所有商品都没有带ItemCode的{​​{1}}怎么办?

如果Length > 0不等于newDescription怎么办?

至少,您需要在"Voided"循环后添加return语句。至于什么是正确的取决于你的要求。

答案 2 :(得分:0)

你需要在#!/usr/bin/env python import numpy as np N = 4 a = np.random.random(20).reshape(4, 5) print(a) # Convert it into a 1D array a_1d = a.flatten() # Find the indices in the 1D array idx_1d = a_1d.argsort()[-N:] # convert the idx_1d back into indices arrays for each dimension x_idx, y_idx = np.unravel_index(idx_1d, a.shape) # Check that we got the largest values. for x, y, in zip(x_idx, y_idx): print(a[x][y]) 循环之后返回该情况,当它落入循环而不返回任何内容时。

foreach

答案 3 :(得分:0)

只需添加

return false;

在你的功能的最后