我编写了以下函数,但是我收到的错误是"并非所有代码路径都返回值"。我已经在线查看了这个问题并搜索了有关堆栈溢出的问题,但我只能看到我错过/做错了什么。
我试图在别处的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;
}
}
}
}
答案 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;
在你的功能的最后