通过命令行从用户处获取数据
本文关键字:获取 数据 用户 命令行 | 更新日期: 2023-09-27 18:28:50
我希望有人在我的代码中输入长度和宽度的值,以下是我迄今为止得到的:
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我正在尝试修改它,只是为了获得更多使用这种编程语言的经验。
您的代码有一些问题,让我们分析一下:
-
一个程序必须有一个唯一的入口点,并且它必须声明为静态无效,这里有两个main,但它们是错误的
-
你在你的静态Main中,矩形类中的一个,你不能引用变量length和width,因为它们没有被声明为静态
- console.Read()返回一个表示字符的int,因此如果用户输入1,则长度变量中可能会有不同的值
- 您的静态double Main没有返回double
我想你想要的是:
- 将静态双Main声明为void Main()
- 将void Main声明为静态void Main(string[]args)
- 在新的静态void Main调用中(在创建矩形之后),它是Main方法(要做到这一点,必须将其定义为public)
- 使用ReadLine而不是Read()
- ReadLine返回一个字符串,以便在double中进行转换,您必须使用lenght=double。分析(Console.ReadLine())
- 最后调用你的r.display()
这是一个工作代码,可以执行您想要的操作。复制粘贴之前请注意,因为您正在尝试阅读步骤并尝试在不查看代码的情况下修复它
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();
}
}
在这种情况下,您必须告诉compiles wich是具有入口点的类。
如果您的编译包含多个带有Main方法的类型,您可以指定哪个类型包含要用作程序入口点的Main方法
http://msdn.microsoft.com/en-us/library/x3eht538.aspx
是的,有两种主要的方法是令人困惑和毫无意义的。