当用户输入为10时,测试函数返回null。
List<int?> test10 = testInt(9, 10).ToList();
public static List<int?> testInt(int pagetotal, int userinput)
{
List<int?> _data = null;
if (userinput <= 10 && userinput != 0)
{
if (userinput <= pagetotal)
{
_data = Enumerable.Repeat(pagetotal / userinput, userinput - 1).ToList();
int y = (pagetotal - pagetotal / userinput * (userinput - 1));
_data.Add(y);
}
}
return _data;
}
答案 0 :(得分:1)
_data
时, null
才设置为非true
值:
userinput <= 10
-这是true
,因为userinput
是10
userinput != 0
-这是true
,因为userinput
是10
userinput <= pagetotal
-这是false
,因为userinput
是10
,而pagetotal
是9
您需要确定当pagetotal
小于userinput
时返回什么。当前是null
,但您可能会返回一个空列表:
if (userinput <= pagetotal) {
...
} else {
_data = ...
}
答案 1 :(得分:0)
userinput <= pagetotal
如果用户输入> = 10(与pageTotal = 9),则该部分可防止_data初始化。 我认为最好先规范化用户输入。 您可以添加以下行:
if(userInput > total)
userInput = total;
if(userInput <1)
userInput =1;