Pergunta

Sou novo na programação e estou fazendo uma aula de C#. Estou recebendo erro do compilador CS1001 quando tento escrever este programa.

Eu li a descrição do erro do compilador (link abaixo), mas realmente não estou recebendo. O que estou fazendo errado?

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

Aqui está o meu código -fonte:

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

De acordo com as instruções, eu deveria ter um método B (InputData) que extrai declarações do Método C (DataEntry) ... Aqui estão as instruções:

O inputMethod () no programa InputMethodDemo na Figura 6-24 contém código repetitivo que solicita o usuário e recupera valores inteiros. Reescreva o programa para que o inputMethod () chama outro método para fazer o trabalho. O inputMethod () reescrito precisará conter apenas duas declarações:

um = dataEntry ("primeiro");

dois = dataEntry ("segundo");

Salve o novo programa como inputMethodDemo2.cs. "

O InputMethodDemo ao qual estão se referindo é o mesmo programa, exceto que ele chama apenas um método (o método de entrada) em vez de dois.

O texto que me referi acima é "Microsoft® Visual C#® 2008, uma introdução à programação orientada a objetos, 3E, Joyce Farrell"

Qualquer conselho/ ajuda seria muito apreciado.

Foi útil?

Solução

Isso é o que você deve fazer:

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

Outras dicas

Mudar

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

para

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

Você não forneceu o tipo de argumento. Além disso, seus argumentos são chamados de primeiro e segundo, não um e dois.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top