Ошибка CS1001 (ожидается идентификатор) - PullRequest
4 голосов
/ 24 октября 2010

Я новичок в программировании и беру класс 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) ... Вот инструкции:

InputMethod () в программе InputMethodDemo на рисунке 6-24 содержит повторяющиеся код, который запрашивает пользователя и получает целочисленные значения. Перепишите программу, чтобы InputMethod () вызывает другой метод для выполнения работы. Переписанный InputMethod () нужно будет содержать только два оператора:

one = DataEntry ("first");

two = DataEntry ("second");

Сохранить новую программу как InputMethodDemo2.cs. "

InputMethodDemo, на который они ссылаются, является одной и той же программой, за исключением того, что она вызывает только один метод (InputMethod) вместо двух.

Текст, на который я ссылался выше: «Microsoft® Visual C # ® 2008, Введение в объектно-ориентированное программирование, 3e, Джойс Фаррелл»

Любой совет / помощь будет принята с благодарностью.

Ответы [ 2 ]

5 голосов
/ 24 октября 2010

Это то, что вы ожидаете сделать:

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;
    }
}
2 голосов
/ 24 октября 2010

Изменить

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");
}

Вы не указали тип аргументов.Кроме того, ваши аргументы называются первый и второй, а не один и два.

...