编写一个接受整数作为唯一参数的函数。抛出一个小于1的整数异常。功能应该 创建一个整数堆栈(使用泛型强制执行堆栈中存储的类型!), 使用随机整数填充堆栈(随机在0到99范围内),这样堆栈保持等于传入的参数的随机整数计数,并且 返回堆栈。
这是我的代码到目前为止,我是新手。如果你能提供帮助,我会很高兴
Console.WriteLine("ENTER A NUMBER");
int arg = Int16.Parse(Console.ReadLine());
if (arg < 1)
{
try
{
}
catch (System.IndexOutOfRangeException e)
{
throw new System.ArgumentOutOfRangeException("value must be more than 1");
}
Stack<int> mystack = new Stack<int>(arg);
Random rd = new Random();
if( arg > 1)
{
int rndnum = rd.Next(arg);
arg = mystack.Pop();
return
}
Console.ReadLine();
答案 0 :(得分:0)
我认为你想要的是一个函数 - “编写一个接受整数作为唯一参数的函数。”
对我来说,这看起来像是:
ReturnType MyFunction(int argument) { ... }
...其中ReturnType
是函数的返回类型,...
需要由实际实现替换。它在后面的说明中告诉你返回类型应该是一个整数堆栈。所以......
Stack<int> MyFunction(int argument) { ... }
您可能需要Console.ReadLine()来收集输入,以发送到该功能。但是描述中没有任何内容说该函数应该从控制台读取输入。所以对我来说,这意味着Console.ReadLine()应该在函数之外。
给出一个想法,再次转动曲柄,并发布更新。
答案 1 :(得分:0)
首先,这段代码意味着:“什么都不做,如果没有什么可以抛出另一个异常”
try
{
}
catch (System.IndexOutOfRangeException e)
{
throw new System.ArgumentOutOfRangeException("value must be more than 1");
}
虽然你需要的是“抛出整数的异常小于一。”。因此,如果数字低于throw
,您必须new
Exception
1
。
当您实现上述行为时,您将不需要
Stack<int> mystack = new Stack<int>(arg);
Random rd = new Random();
if( arg > 1) // to check if the argument is invalid
{ // the program shouldn't execute if
} // arg is lower than 1
之后,请查看Random
的引用,您说您需要一个0
和99
之间的数字
rd.Next(arg); // this is not generating a number between 0 and 99
此外,您不应该从堆栈中删除元素,您必须add
元素
mystack.Pop(); // removing from stack
然后返回堆栈。
答案 2 :(得分:0)
永远不会输入catch块。 try块中没有任何内容,程序也不会崩溃=&gt;它不会去捕捉。