【问题标题】:Methods } expected方法}预期
【发布时间】:2015-07-22 08:28:05
【问题描述】:

得到以下代码,给出'}预期'的第一个错误

只是试图获取和打印学生数据。不确定我是否需要将这些方法设置为返回类型之类的。欢迎任何建议,谢谢。

namespace studentInfo
{
    class Program
    {
        static void Main(string[] args)
        {
            getUserInformation();
            printStudentDetails(string firstName, string lastName, string birthday);
        }

        static void getUserInformation()
        {
            Console.WriteLine("Enter the student's first name: ");
            string firstName = Console.ReadLine();
            Console.WriteLine("Enter the student's last name");
            string lastName = Console.ReadLine();
            Console.WriteLine("Enter your bithdate");
            //DateTime birthdate = Convert.ToDateTime(Console.ReadLine());
            string birthday = Console.ReadLine();

        }

        static void printStudentDetails(string firstName, string lastName, string birthday)
        {
            Console.WriteLine("{0} {1} was born on: {2}", firstName, lastName, birthday);
            Console.ReadLine();
        }
    }
}

【问题讨论】:

  • Puhhh 有一个重大的理解泄漏。在更深入之前,您最好尝试了解基础知识,例如方法和参数传递。
  • 这不是很有帮助。我已经读过这方面的内容,但付诸实践需要一些实践,这就是我现在正在尝试做的事情,谢谢。

标签: c# methods


【解决方案1】:

你错误地调用了一个方法:

 printStudentDetails(string firstName, string lastName, string birthday);

应该是:

 printStudentDetails(firstName, lastName, birthday);

在将变量传递给您的方法之前,您还必须定义名字、姓氏、生日。

【讨论】:

    【解决方案2】:

    你做错了伙计!

    你只需要变量来调用方法..你不需要它的数据类型。

    所以应该是这样的:-

    printStudentDetails(firstName, lastName, birthday);
    

    如果您想像这样使用变量,请在全局范围内声明它们:-

    public static dynamic firstName;
        public static dynamic lastName;
        public static dynamic birthday;
    
    static void Main(string[] args)
    {
    
        getUserInformation();
        printStudentDetails(firstName, lastName, birthday);
    }
    
    static void getUserInformation()
    {
        Console.WriteLine("Enter the student's first name: ");
        firstName = Console.ReadLine();
        Console.WriteLine("Enter the student's last name");
        lastName = Console.ReadLine();
        Console.WriteLine("Enter your bithdate");
        birthday = Console.ReadLine();
    
    }
    
    static void printStudentDetails(string firstName, string lastName, string birthday)
    {
        Console.WriteLine("{0} {1} was born on: {2}", firstName, lastName, birthday);
        Console.ReadLine();
    }
    

    【讨论】:

    • 对!是的,当然。对 printStudentDetails 的调用只是传入参数,但实际方法需要在参数列表中定义变量类型。为什么方法不知道传入的变量类型是什么?我的意思是,它们已经被全局声明了,那么为什么我们需要在方法参数列表中重新确认它们的类型呢?此外,我已根据您的建议更改了代码,但在 printStudentDetails(firstName, lastName,birthday); 中传递的参数出现错误。它说“非静态文件、方法或属性需要对象引用
    • 好吧,如果您不想在方法参数中指定数据类型但不能留空,您甚至可以使用动态或对象! @user2036750 检查此stackoverflow.com/questions/14281289/…
    • 所以,我想差不多了。
    • 好的,如果您认为它有用,请接受作为答案@user2036750
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多