C#方法-哪些参数转到哪里?

奥扎拉

免责声明:我是一个非常新的程序员,因此您可能必须像我五岁那样来分解一下。

我对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);
        }

    }

我所迷惑的是如何运行这些参数以及它们的实际位置(进入哪种方法?)。感谢您的帮助,我将在哪里澄清。谢谢你。

传教士

以下是一些可用于实现目标的构造。我不想重写您的程序,但我将使用string7代替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)));

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章