2010-09-27 37 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

你认为“静态枚举”是什么意思?无论你认为这意味着什么,这并不意味着什么。你能解释一下你的想法吗?我非常有兴趣了解人们对于代码意味着什么导致他们误入歧途的直觉,以便我们可以设计不会导致用户陷入这些陷阱的语言。谢谢! – 2010-09-27 23:28:10

+0

@Eric:很好说。为了回答你的问题,我怀疑他认为'enum'是一个数字类型,或者他随机选择了一个关键字。 – SLaks 2010-09-27 23:30:02

+0

“我得到了大量的错误,说”无效的标记“” - 向我们展示至少一些错误,以及它们引用的行号。 告诉我们你的代码中有一个“无效标记”*在某处*滥用了你要求帮助的同一个人! – abelenky 2010-09-27 23:35:39

回答

1

您的Display方法未正确声明。

您需要声明一个采用两个数字并返回第三个数字的方法。
请参阅您的教科书和作业以获取有关如何声明方法以及使用哪些类型的更多信息。

你也没有正确调用它;方法调用不需要类型。

4

这是不正确的:

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

} 

enum keyword用于声明枚举。为了定义方法,您需要一个有效的返回类型(如intdouble),并且您需要为各个参数提供适当的类型。如果您希望它是一个静态方法,您可以选择添加static,但这取决于它的用途。

我怀疑你想要更多的使用类似:

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

如果再更正调用此方法行:

sum = Display(double a, double b); 

这应该编译,给你你所期望的。

+0

请不要为他完成他的家庭作业。 – SLaks 2010-09-27 23:29:41

+0

@Slaks:没有试图提供一个完整的解决方案 - 只是足够的提示,并推理为什么,在那里得到OP ... – 2010-09-27 23:32:07

+0

详细说明@ReedCopsey关于枚举。从文档你可以读到:枚举元素的默认基础类型是int。这意味着枚举基本上是int。 – Lundsern 2016-08-05 07:53:26

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 2010-09-27 23:33:14

+0

同上里德说了什么。因为这是一个质量保证网站。 – 2010-09-27 23:51:42