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

C#方法-哪些参数去哪里?,c#,methods,C#,Methods,免责声明:我是一个非常新的程序员,所以你可能不得不像我五岁时那样把它分解 我对C#中的方法有一个非常基本的概述,并分配了一个任务,将字母数字输入转换成七位数的电话号码。目前,我有足够的代码来获取输入(一次性输入:1234567)并以电话号码格式显示。但是,我需要对输入进行检查,以确保值是正确的——没有符号,第一个字符!=0和前三个字符!=555 以下是迄今为止我掌握的代码: class Program { static void Main(string[] args)

免责声明:我是一个非常新的程序员,所以你可能不得不像我五岁时那样把它分解

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

    }

我不知道的是如何运行这些参数以及它们的实际位置(进入哪个方法?)。非常感谢您的帮助,我将说明我可以在哪里提供帮助。谢谢。

下面是一些可以用来实现目标的结构。我不想重写你的程序,但我要用一个
字符串来代替七个
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.Format
string.SubString

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

下面是一些可以用来实现目标的结构。我不想重写你的程序,但我要用一个
字符串来代替七个
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.Format
string.SubString

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

哎呀!不要这样做:)使用一个字符串(或至少一个字符序列)-不要对每个单个数字使用变量!这太难对付了。另外,除非确实需要,否则不要使用
ref
。在这种情况下,一旦做出上面建议的更改,情况就不是这样了。另外,
Console.Read
不会返回您认为它会返回的内容(请参阅文档)。在帖子中包含代码,不要链接到外部资源。就像前面提到的user2864740一样,请使用字符串。通过将字符串视为数组,可以访问单个数字。例如,如果您有“string phoneNumber=“4441234567”,那么您可以使用“phoneNumber[0]”获取第一个数字,使用“phoneNumber[1]”获取第二个数字,等等。对于链接,它现在已修复。(只是今晚才找到这个网站。)哎呀!不要这样做:)使用一个字符串(或至少一个字符序列)-不要对每个单个数字使用变量!这太难对付了。另外,除非确实需要,否则不要使用
ref
。在这种情况下,一旦做出上面建议的更改,情况就不是这样了。另外,
Console.Read
不会返回您认为它会返回的内容(请参阅文档)。在帖子中包含代码,不要链接到外部资源。就像前面提到的user2864740一样,请使用字符串。通过将字符串视为数组,可以访问单个数字。例如,如果您有“string phoneNumber=“4441234567”,那么您可以使用“phoneNumber[0]”获取第一个数字,使用“phoneNumber[1]”获取第二个数字,等等。对于链接,它现在已修复。(只是今晚才找到这个网站。)@Zain我本来不可能嵌套
,如果
让它不那么完整的话,但我认为显示顺序检查可能更有帮助。实际上,这里是女性,在我看来,这绝对不算是一个完整的家庭作业解决方案。:)@我知道。我将给您另一个提示,以正确的格式打印字符串:p@evanmcdonnal对不起,我之前的评论是给Zain的。仍然在弄清楚这个网站是如何工作的。@Willk24如果这是家庭作业,请给它贴上这样的标签。另外,如果埃文的回答是有帮助的,就接受它作为答案。欢迎光临@Zain如果
让它不那么完整的话,我不可能嵌套
,但我认为显示顺序检查可能更有帮助。实际上,这里是女性,在我看来,这绝对不算是一个完整的家庭作业解决方案。:)@我知道。我将给您另一个提示,以正确的格式打印字符串:p@evanmcdonnal对不起,我之前的评论是给Zain的。仍然在弄清楚这个网站是如何工作的。@Willk24如果这是家庭作业,请给它贴上这样的标签。另外,如果埃文的回答是有帮助的,就接受它作为答案。欢迎