gpt4 book ai didi

c# - 如何摆脱此错误 : not all code paths return a value?

转载 作者:行者123 更新时间:2023-11-30 13:39:05 26 4
gpt4 key购买 nike

int search(string [][]mat, int n, string x){
//set indexes for top right element
for(int i = 0; i<n; i++)
{
for(int j = n-1; j>=0; j--)
{
if ( mat[i][j] == x )
{
Debug.Log(x +""+"Found at "+i +" "+j);
// int[] n2 = new int[] {2, 4, 6, 8};
// int [] xyz = new int [] {i, j};
return i;

}

}
}}

如何摆脱这个错误:并非所有代码路径都返回一个值?

错误:*Assets/Scripts/Chess/Bishop.cs(237,22):错误 CS0161:`Bishop.search(string[][], int, string)':并非所有代码路径都返回值 *

最佳答案

计算出如果您永远找不到x 时您希望发生什么,并在该方法结束时返回它。例如:

// Fixed naming conventions and indentation...
// Why do we need n here at all? Why not just use the length of the array?
int Search(string[][] mat, int n, string x)
{
//set indexes for top right element
for (int i = 0; i < n; i++)
{
// Why are we looking backwards here?
for (int j = n - 1; j >= 0; j--)
{
if (mat[i][j] == x)
{
// More readable formatting...
Debug.Log(string.Format("{0} found at {1}, {2}", x, i, j));
return i;
}
}
}
// Not found: return -1 to indicate failure. Or you could throw an exception
return -1;
}

更笼统地说:这里的编译器错误消息相当清楚——有一种方法可以让您在不返回任何内容的情况下到达方法的结尾。值得退后一步,试着想想为什么你不能自己解决这个问题。您是否足够注意编译器错误消息?在所有情况下,您是否了解了该方法可能执行的所有操作?下次你如何更好地处理这件事?

关于c# - 如何摆脱此错误 : not all code paths return a value?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13760905/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com