c#方法声明变量

时间:2015-10-13 16:34:28

标签: c# methods

我正在制作一个我使用过方法的类。他们的变量直接在方法参数中声明。为什么我不能像字符串一样在下面声明int。

class studentinfoget
{
    static void Getstudnetinformation(string firstname, string lastname, string birthday, string address, int cellnumber, int homenumber)

    {
        Console.WriteLine("enter your first name");
        firstname = Console.ReadLine();
        Console.WriteLine("enter your LAST NAME");
        lastname = Console.ReadLine();
        Console.WriteLine("enter your brithday ");
        birthday = Console.ReadLine();
        Console.WriteLine("enter birthday");
        address = Console.ReadLine();
        Console.WriteLine("enter address");
        cellnumber = Console.ReadLine();
        Console.WriteLine("enter adress");


    }

此代码的错误是

  

CS0029 C#无法将类型'string'隐式转换为'int'

3 个答案:

答案 0 :(得分:4)

您可以使用int.TryParse()将输入转换为整数。

int.TryParse(Console.ReadLine(), out cellnumber);

但是,如果测试失败,cellnumber将为0。

虽然单元格编号可能不一定是整数 - 您可以让某人输入单元格编号为"XXX-XXX XXXX",或者可能有超过10位数字,在这种情况下,您可能超过int.MaxValue 2,147,483,647。此外,起始数字可能为0,然后在存储时将其删除并使电话号码无效。

在这种情况下,我建议将值存储为字符串,至少保留用户输入的格式。

答案 1 :(得分:3)

cellnumber被声明为intConsole.ReadLine返回string。您需要将输入的文本转换为数字:

int.TryParse(Console.ReadLine(), out cellnumber);

TryParse用于处理无效输入 - 如果用户输入Phone或者某个不是TryParse的内容不会抛出异常,它将返回false但执行将继续。

答案 2 :(得分:0)

你可以使用 cellnumber = Int32.Parse(Console.ReadLine());

但您应将单元号 homenumber 更改为字符串变量。