2010-09-27 4 views
-1

У меня небольшая проблема с этим кодом, который я пишу для простой программы. Я получаю массу ошибок, говоря «недопустимый токен».Недопустимые ошибки токена с перечислениями

Программа в основном запрашивает 2 целых числа и суммирует их, но программа должна быть вызвана другим методом.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace AustinPDangeloJPA03 
{ 
    class Add 
    { 
     static void Main(string[] args) 
     { 
      double num1, 
        num2, 
        sum; 

      Console.Write("Enter the First integer: "); 
      num1 = int.Parse(Console.ReadLine()); 
      //First Integer entered and storred 
      Console.Write("Enter the Second integer: "); 
      num2 = int.Parse(Console.ReadLine()); 
      //Second Integer entered and storred 
      sum = Display(double a, double b); 
      //First and second numbers added together 

      Console.WriteLine(" {0} + {1} = {2} ",num1,num2,sum); 
      //displays the sum 

      //Instructs the user to press the Enter key to end the program 
      Console.WriteLine("Press the Enter key to terminate the program..."); 
      Console.ReadLine(); 

      }//Closes Main Method 

     static enum Display(a,b) 
     { 
      double c = a + b; 
      return c; 
     }//closes display method 

    }//Closes Class Add 
} 
+6

Что вы считаете «статическим перечислителем» означает? Что бы вы ни думали, это не то, что это значит. Можете ли вы объяснить, что вы думаете об этом? Мне очень интересно узнать, как интуиция людей о том, что означает код, приводит их в заблуждение, так что мы можем создавать языки, которые не приводят пользователей к этим ловушкам. Благодаря! –

+0

@ Эрик: Очень хорошо сказано. Чтобы ответить на ваш вопрос, я подозреваю, что он считает, что 'enum' является числовым типом, или что он выбрал ключевое слово наугад. – SLaks

+0

«Я получаю массу ошибок, говорящих« недопустимый токен ». - Покажите нам хотя бы пару ошибок и номера строк, на которые они ссылаются. Сообщите нам, что есть «недопустимый токен» * где-то * в вашем коде, оскорбляет тех же людей, о которых вы просите о помощи! – abelenky

ответ

1

Ваш метод Display не указан правильно.

Вам необходимо объявить метод, который принимает два номера и возвращает третье число.
Проконсультируйтесь с учебником и назначением для получения дополнительной информации о том, как объявить метод и какие типы использовать.

Вы также не называете это правильно; вызовы методов не принимают типы.

4

Это не правильно:

static enum Display(a,b) 
{ 
    double c = a + b; 
    return c; 

} 

enum keyword используется для объявления перечисления. Чтобы определить метод, вам нужен действительный тип возврата (например, int или double), и вам необходимо предоставить соответствующие типы для отдельных аргументов. Вы можете добавить static, если хотите, чтобы это был статический метод, но это зависит от его назначения.

Я подозреваю, что вы хотите использовать что-то подобное:

double Add(double a, double b) 
{ 
    // ... 

Если вы исправьте строку, называемую этот метод:

sum = Display(double a, double b); 

Это должно составить и дать вам то, что вы ожидаете.

+0

Пожалуйста, не завершайте его домашнее задание для него. – SLaks

+0

@Slaks: Не пытался предоставить полное решение - достаточно намеков и аргументов, почему, чтобы получить OP там ... –

+0

Чтобы подробно рассказать о @ReedCopsey о перечислении. В документах вы можете прочитать следующее: Тип элемента перечисления по умолчанию - int. Это означает, что перечисления в основном являются int. – Lundsern

0

Хотя это не является источником ваших ошибок, оно свидетельствует о непонимании типов:

double num1, num2,sum; 
[...] 
num1 = int.Parse(Console.ReadLine()); 

Первая строка объявляет некоторые double переменные.
Вторая строка пытается разобрать int переменных.

В то время как int будет автоматически преобразован в double, ваш код будет лучше, если он согласуется с использованием типов. Вы должны переключиться на int типов, или на Double.Parse().

0

enum ключевого слова для создания перечислений, например:

public enum Color { Red, Green, Blue }; 

Вы должны указать тип данных в качестве типа возвращаемого значения для метода Display и типы данных для параметров:

static double Display(double a, double b) { 
    double c = a + b; 
    return c; 
} 

Кроме того, вы не указываете типы данных при вызове метода, поэтому измените это на:

sum = Display(a, b); 
0

Изменить эту строку:

double sum = Display(num1, num2); 

и изменить способ отображения, чтобы быть методом.

private static double Display(double a, double b) 
    { 
     double c = a + b; 
     return c; 
    } 
+1

Пожалуйста, не завершайте его домашнее задание для него. – SLaks

+0

То же, что сказал Рид. Поскольку это сайт QA. –

Смежные вопросы