我收到一个错误,说必须声明一个主体,因为它没有标记为抽象、外部或部分
本文关键字:一个 抽象 记为 外部 声明 错误 因为 主体 | 更新日期: 2023-09-27 18:34:16
class Program {
static void Main(string[] args);
string name, state;
double quantity, unitPrice;
double sales, tax;
public static double computeTax(double sales, string state) {
double taxMultiplier = 0;
if (string.Compare(state, "NY", true) == 0) {
taxMultiplier = 0.04;
} else if (string.Compare(state, "NJ", true) == 0) {
taxMultiplier = 0.07;
} else if (string.Compare(state, "FL", true) == 0) {
taxMultiplier = 0.06;
}
return sales * taxMultiplier;
}
public static double computeTotal(double quantity, double price) {
return (double) quantity * price;
}
public static void Main() {
string name, state;
System.Console.Write("Enter the name of the customer: ");
name = System.Console.ReadLine();
System.Console.Write(" In which state (NY / NJ / FL) ?: ");
state = System.Console.ReadLine();
System.Console.Write("How many items were purchased?: ");
string input;
input = System.Console.ReadLine();
int numItems = System.Convert.ToInt32(input);
System.Console.Write("What was the unit price of the items?: ");
input = System.Console.ReadLine();
double price = System.Convert.ToDouble(input);
double totalSales = computeTotal(numItems, price);
System.Console.WriteLine("Total Sales for " + name + " are: $" + string.Format("{0:0.00}", totalSales));
double taxAmt = computeTax(totalSales, state);
System.Console.WriteLine("The Tax Amount is: $" + string.Format("{0:0.00}", taxAmt));
double totalWithTaxes = totalSales + taxAmt;
System.Console.WriteLine("The total with taxes is: $" + string.Format("{0:0.00}", totalWithTaxes));
}
}
}
首先删除以下内容,即声明一个没有主体的方法:
static void Main(string[] args);
你不能这样做:
static void Main(string[] args);
你需要一个函数体。
您只需删除以下无效行即可解决此问题。
static void Main(string[] args);
如果有意为应用程序包含两个入口点(该行实际上应该用作另一种方法),则必须为上述行包含一个方法主体。因此,删除分号并添加一个方法主体:
static void Main(string[] args)
{
// Do something in here
}
请注意,您还必须使用 /main
在编译器中指定入口点(当有多个入口点可用时)。如果您使用的是 Visual Studio,则可以在项目选项中执行此操作。
在 .NET 中,可执行文件只能有一个入口点,即只允许一个 Main 方法。更具体地说,仅当 Sigature 与以下 2 项中的任何一个匹配并且该方法是静态的时,才会将 Main 方法视为入口点。
- 主(字符串[])
- 主()如果您提供的 main 方法的签名与上述两个不同,则不会将其视为 Main 方法。因此,允许使用以下代码,
例
class Program
{
static void Main () //Entry point
{
}
static void Main(int number)
{
}
}
下面的代码无法编译,因为它在两个地方找到匹配的签名。
class Program
{
static void Main () //Entry point
{
}
static void Main(String[] args) //another entrypoint!!! Compile Error
{
}
}
下面的代码也无法编译,因为根本没有入口点,
class Program
{
static void Main (int a) //Not an Entry point
{
}
static void Main(float b) //Not an entry point
{
}
}
注意:摘自 MSDN 论坛