任务是编写一个可以对int数组进行排序的简单方法(按升序或降序排列 - 应设置为此方法的枚举类型参数)。我已经编写了方法本身和枚举,但我不知道如何将枚举设置为方法参数:(
很高兴能得到你的帮助,伙计们,因为我对编码完全陌生。
class Program
{
public enum options
{
UpSortOption,
DownSortOption
}
public static void Main(string[] args)
{
int[] arr = new int[] { 3, 8, 0, 2, 16 };
}
static void orderArray(int [] array, options op)
{
switch(op)
{
case options.UpSortOption:
Array.Sort(array);
foreach (int number in array)
{
Console.Write(number + " ");
}
break;
case options.DownSortOption:
Array.Sort(array);
Array.Reverse(array);
foreach (int number in array)
{
Console.Write(number + " ");
}
break;
}
}
}
答案 0 :(得分:3)
该方法的签名看起来很好,现在您想通过传递类型为整数数组的第一个参数和类型为options
的第二个参数来调用此方法,您可以使用以下代码:
orderArray(arr,options.UpSortOption);
或者您可以声明类型options
的变量并传递该变量,您必须对该案例进行的更改将是:
options optionsVariable = options.DownSortOption;
orderArray(arr,optionsVariable);
答案 1 :(得分:1)
让我们退一步看看它是否有助于您理解。
如果你有一个带字符串和int的方法
string MyMethod(string str, int num)
{
// Do something
}
你会像这样使用它
string rslt = MyMethod("Hello", 123);
你在这里得到的东西是某些东西,对它有所作为,并给你一些回报。在这种情况下,MyMethod
会使用string
和int
,对其进行操作并返回string
,然后您调用rslt
。
您的示例遵循相同的基本模式,因此您需要使用您的方法 - orderArray
并为其提供它想要的两件事 - 一个int数组和一个像这样的选项
int[] arr = new int[] { 3, 8, 0, 2, 16 };
orderArray(arr, options.UpSortOption);
或者,你可以像创建一个字符串一样创建一个选项,然后像这样调用你的方法
int[] arr = new int[] { 3, 8, 0, 2, 16 };
options myOption = options.UpSortOption;
orderArray(arr, myOption);
为了充分说明作为参数的枚举与字符串没有任何不同,您可以像这样修改方法
static void orderArray(int[] array, string op)
{
if (op == "UpSortOption")
{
Array.Sort(array);
foreach (int number in array)
{
Console.Write(number + " ");
}
}
else
{
Array.Sort(array);
Array.Reverse(array);
foreach (int number in array)
{
Console.Write(number + " ");
}
}
}
然后像这样称呼它
int[] arr = new int[] { 3, 8, 0, 2, 16 };
string myOption = "UpSortOption";
orderArray(arr, myOption);
答案 2 :(得分:0)
这是您将其作为参数传递的方式
orderArray(int [] array, typeof(options)){
//Beep bap boop
}
希望这有助于你。
答案 3 :(得分:0)
正是这就是你如何将Enum设置为方法参数。
要调用此方法,请使用:
orderArray(arr, options.UpSortOption);
您还可以为变量指定枚举值,并使用它来调用方法:
options sortOpt = options.UpSortOption;
orderArray(arr, sortOpt);
您还可以将整数转换为枚举:
orderArray(arr, (options)0);
OR
int opt = 0;
orderArray(arr, (options)opt);
记住,如果没有另外指定,则第一个元素为0,第二个为1,依此类推。
顺便说一下,您应该使用 PascalCase 来命名枚举类型,例如:
public enum Options
{ ... }