C#:引发异常list <int>

时间:2018-08-11 08:38:48

标签: c#

当用户输入为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;
}

2 个答案:

答案 0 :(得分:1)

仅当所有这些条件都为_data时,

null才设置为非true值:

  • userinput <= 10-这是true,因为userinput10
  • userinput != 0-这是true,因为userinput10
  • userinput <= pagetotal-这是false,因为userinput10,而pagetotal9

您需要确定当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;