我希望有人在我的代码中输入长度和宽度的值,这是我到目前为止所得到的:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication2
{
class Rectangle
{
double length;
double width;
double a;
static double Main(string[] args)
{
length = Console.Read();
width = Console.Read();
}
public void Acceptdetails()
{
}
public double GetArea()
{
return length * width;
}
public void Display()
{
Console.WriteLine("Length: {0}", length);
Console.WriteLine("Width: {0}", width);
Console.WriteLine("Area: {0}", GetArea());
}
}
class ExecuteRectangle
{
public void Main()
{
Rectangle r = new Rectangle();
r.Display();
Console.ReadLine();
}
}
}
试图以错误的方式使用两个Main
方法来解决这个问题吗?这是我从http://www.tutorialspoint.com/csharp/csharp_basic_syntax.htm复制的代码我试图修改它以获得更多使用这种编程语言的经验。
答案 0 :(得分:4)
您的代码存在一些问题,让我们分析一下:
一个程序必须有一个唯一的入口点,它必须被声明为静态void,这里有两个main但它们是错误的
你在静态Main中矩形类中的那个你不能引用变量长度e宽度因为它们没有被声明为静态
我认为你想要的是:
这是一个可以满足您需求的工作代码。 在复制粘贴之前请注意,因为您正在尝试并学习阅读步骤并尝试修复它而不查看代码
class Rectangle
{
double length;
double width;
double a;
public void GetValues()
{
length = double.Parse(Console.ReadLine());
width = double.Parse(Console.ReadLine());
}
public void Acceptdetails()
{
}
public double GetArea()
{
return length * width;
}
public void Display()
{
Console.WriteLine("Length: {0}", length);
Console.WriteLine("Width: {0}", width);
Console.WriteLine("Area: {0}", GetArea());
}
}
class ExecuteRectangle
{
public static void Main(string[] args)
{
Rectangle r = new Rectangle();
r.GetValues();
r.Display();
Console.ReadLine();
}
}
答案 1 :(得分:0)
在这种情况下,你必须告诉编译,这是具有入口点的类。
“如果您的编译包含多个带有Main方法的类型,您可以指定哪个类型包含您要用作程序入口点的Main方法。”
http://msdn.microsoft.com/en-us/library/x3eht538.aspx
是的,有两个主要方法是混乱和无意义。