Erro CS1001 (Identificador esperado)
-
25-09-2019 - |
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.
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.