通过命令行从用户处获取数据

本文关键字:获取 数据 用户 命令行 | 更新日期: 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我正在尝试修改它,只是为了获得更多使用这种编程语言的经验。

通过命令行从用户处获取数据

您的代码有一些问题,让我们分析一下:

  1. 一个程序必须有一个唯一的入口点,并且它必须声明为静态无效,这里有两个main,但它们是错误的

  2. 你在你的静态Main中,矩形类中的一个,你不能引用变量length和width,因为它们没有被声明为静态

  3. console.Read()返回一个表示字符的int,因此如果用户输入1,则长度变量中可能会有不同的值
  4. 您的静态double Main没有返回double

我想你想要的是:

  1. 将静态双Main声明为void Main()
  2. 将void Main声明为静态void Main(string[]args)
  3. 在新的静态void Main调用中(在创建矩形之后),它是Main方法(要做到这一点,必须将其定义为public)
  4. 使用ReadLine而不是Read()
  5. ReadLine返回一个字符串,以便在double中进行转换,您必须使用lenght=double。分析(Console.ReadLine())
  6. 最后调用你的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

是的,有两种主要的方法是令人困惑和毫无意义的。