无法在主方法中调用数组

帕特里克曼

我正在练习方法,但问题是我想将输入和排序分开,显示方法将是主要方法,我无法从其他类中修复此调用。

这是我的脚本:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CaseProblem
{
    class Method
    {
        static void MethodInput()
        {
            int[] array = new int[5];
            int i;
            // loop for accepting values in array
            for (i = 0; i < 5; i++)
            {
                Console.Write("Enter number:\t");
                array[i] = int.Parse(Console.ReadLine());
            }
        }
        public static void MethodSort()
        {
            foreach (int i in array)
            {
                Console.Write(" {0}", i);
            }
        }
    }
    class Program
    {
        static void Main(int[]array)
        {
            //sorting array value;
            Array.Sort(array); //use array's sort function

            Method.MethodSort(array);
            Console.ReadLine();
        }
    }
}

感谢您的帮助

马修

首先Main()(不能称为“ EntryPoint”)int[]作为输入参数,但string[]您应该在开始实际编写代码之前学习编程的基础知识。

第二件事:

我想分开输入和排序

您可以创建一个名为 Input

public class Input
{
    public static void Write(string message)
    {
        Console.WriteLine(message);
    }

    public static int? ReadInt(string reason)
    {
        Write(reason);
        string userInput = Console.ReadLine();
        int parsed = 0;
        if(int.TryParse(userInput, out parsed))
            return (int?)parsed;

        return null;
    }
}

这将是您的“ InputLogic”,您可以将其用作 Input.ReadInt("Please specify your age: ");

接下来,您可以创建一个Operations对象:

public class Operations
{
    public void Display(int[] arr)
    {
        foreach(int i in arr)
        {
            // and since you have "Input" class that can display things
            Input.Write(i.ToString());
        }
    }

    public void Sort(ref int[] arr)
    {
        Array.Sort(arr);
    }
}

现在,最后一件事是将其合并到您的 Program

class Program
{
    static void Main(string[] args)
    {
        int[] arr = new int[5];
        for(int i = 0; i < arr.Length; i++)
        {
            int? input = null;
            while( !( input = Input.ReadInt("Give me number") ).HasValue ) { }
            arr[i] = input.Value;
        }

        Operations op = new Operations();
        op.Display(arr);
        op.Sort(ref arr);
        op.Display(arr);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章