C#方法 - 哪些参数去哪里?

时间:2013-11-23 01:38:36

标签: c# methods

免责声明:我是一名非常新的程序员,所以你可能要像我五岁那样打破这种局面。

我对C#中的方法有一个非常基本的概述,并且具有将字母数字输入转换为七位数电话号码的分配。目前,我有足够的代码来获取输入(一次输入:1234567)并以电话号码格式显示。但是,我需要对输入运行检查,以便值正确 - 没有符号,第一个字符!= 0,前三个字符!= 555。

这是我到目前为止的代码:

class Program
    {
        static void Main(string[] args)
        {
            char c1 = ' '; 
            char c2 = ' '; 
            char c3 = ' ';
            char c4 = ' ';
            char c5 = ' ';
            char c6 = ' ';
            char c7 = ' ';

            int returnVal = 0;

            GetInput(ref c1, ref c2, ref c3, ref c4, ref c5, ref c6, ref c7);

            returnVal = ProcessInput(ref c1, ref c2, ref c3, ref c4, ref c5, ref c6, ref c7);
            if (returnVal == -1) {
                Console.WriteLine("Invalid input, please try again. "); }
            else {
                ShowResults(ref c1, ref c2, ref c3, ref c4, ref c5, ref c6, ref c7); }
        }


        static void GetInput(ref char x1, ref char x2, ref char x3, ref char x4, ref char x5, ref char x6, ref char x7)
        {
            Console.WriteLine("Enter a 7 character phone number: ");
            x1 = Convert.ToChar(Console.Read());
            x2 = Convert.ToChar(Console.Read());
            x3 = Convert.ToChar(Console.Read());
            x4 = Convert.ToChar(Console.Read());
            x5 = Convert.ToChar(Console.Read());
            x6 = Convert.ToChar(Console.Read());
            x7 = Convert.ToChar(Console.Read());
            Console.ReadLine();
        }


        static int ProcessInput(ref char y1, ref char y2, ref char y3, ref char y4, ref char y5, ref char y6, ref char y7)
        {
            return 0;
        }


        static void ShowResults(ref char z1, ref char z2, ref char z3, ref char z4, ref char z5, ref char z6, ref char z7)
        {
            Console.WriteLine("The converted phone number is: {0}{1}{2}-{3}{4}{5}{6} ", z1, z2, z3, z4, z5, z6, z7);
        }

    }

我失去的是如何运行这些参数以及它们实际去哪里(使用哪种方法?)。任何帮助表示赞赏,我会澄清我能在哪里。谢谢。

1 个答案:

答案 0 :(得分:1)

以下是一些可用于实现目标的构造。我不想重写你的程序,但我将使用string代替7 char。这不应该是一个很好的解决方案,而是它应该用条件和一些验证字符串的基本技术来演示基本的控制流程。

string input = Console.ReadLine();

if (input.Length == 7)
{
    if (!input.StartsWith("555"))
    {
        if (input[0] != '0')
        {
            int temp;
            if (!int.TryParse(input[0].ToString(), out temp)
            {
            }
            else
            {
                // first char is not an int
            }
        }
        else
        {
           // first char is 0 error
        }
    }
    else
    {
         /// 555 error
    }
}
else
{
         // wrong amount of digits

}

要打印字符串,您可以使用String.FormatString.SubString

的组合
Console.WriteLine(String.Format("{0}-{1}", input.SubString(0,2), input.SubString(3,6)));