错误CS1001(预期标识符)

时间:2010-10-23 21:29:49

标签: c# identifier method-signature

我是编程新手并且正在参加C#课程。当我尝试编写这个程序时,我收到编译器错误CS1001。

我阅读了编译器错误描述(链接如下),但我真的没有得到它。我做错了什么?

http://msdn.microsoft.com/en-us/library/b839hwk4.aspx

这是我的源代码:

using System;
public class InputMethodDemoTwo
{
   public static void Main()
   {
      int first, second;
      InputMethod(out first, out second); 
      Console.WriteLine("After InputMethod first is {0}", first);
      Console.WriteLine("and second is {0}", second);
   }
   public static void InputMethod(out first, out second) 
   // The error is citing the line above this note.
   {
      one = DataEntry("first"); 
      two = DataEntry("second");
   }
      public static void DataEntry(out int one, out int two)
      {
         string s1, s2;
         Console.Write("Enter first integer ");
         s1 = Console.ReadLine();
         Console.Write("Enter second integer ");
         s2 = Console.ReadLine();
         one = Convert.ToInt32(s1);
         two = Convert.ToInt32(s2);
      }
}

根据说明,我应该有一个方法b(InputData)从方法c(DataEntry)中提取语句......以下是说明:

  

图6-24中InputMethodDemo程序中的InputMethod()包含重复   提示用户并检索整数值的代码。重写程序所以   InputMethod()调用另一种方法来完成工作。重写的InputMethod()   将只需要包含两个语句:

     

one = DataEntry(“first”);

     

two = DataEntry(“second”);

     

将新程序保存为InputMethodDemo2.cs。“

     

他们引用的InputMethodDemo是同一个程序,只是它只调用一个方法(InputMethod)而不是两个方法。

我上面提到的文字是“Microsoft®VisualC#®2008,面向对象编程简介,3e,Joyce Farrell”

非常感谢任何建议/帮助。

2 个答案:

答案 0 :(得分:5)

这是您应该做的事情:

using System;

public class InputMethodDemoTwo
{
    public static void Main()
    {

        int first, second;

        InputMethod(out first, out second);
        Console.WriteLine("After InputMethod first is {0}", first);
        Console.WriteLine("and second is {0}", second);
        Console.ReadLine();
    }

    public static void InputMethod(out int first, out int second)
    //Data type was missing here
    {
        first = DataEntry("first");
        second = DataEntry("second");
    }

    public static int DataEntry(string method)
    //Parameter to DataEntry should be string
    {
        int result = 0;
        if (method.Equals("first"))
        {
            Console.Write("Enter first integer ");
            Int32.TryParse(Console.ReadLine(), out result);

        }
        else if (method.Equals("second"))
        {
            Console.Write("Enter second integer ");
            Int32.TryParse(Console.ReadLine(), out result);
        }
        return result;
    }
}

答案 1 :(得分:2)

更改

public static void InputMethod(out first, out second)
{
  one = DataEntry("first");     
  two = DataEntry("second");
}

public static void InputMethod(out DataEntry first, out DataEntry second)
{
  first = DataEntry("first"); 
  second = DataEntry("second");
}

您尚未提供参数类型。此外,您的参数被称为第一和第二,而不是一和二。