如何引入初始化构造函数? C#CS0236

时间:2016-11-29 09:20:12

标签: c# constructor access-modifiers

我遇到了多个错误,但我不知道为什么。在GetArea方法之后引入了错误。

namespace Lesson02
{
    class Rectangle
    {
        static void Main(string[] args)
        {

        }

        private double length;
        private double width;
        public Rectangle(double l, double w)

        {
            length = l;
            width = w;

        }

        public double GetArea()

        {
            return length * width;
        }

       public Rectangle rect = new Rectangle(10.0, 20.0);
       double area = rect.GetArea();
       Console.WriteLine("Area of Rectagle: {0}", area);

3 个答案:

答案 0 :(得分:0)

你不能只执行执行

Console.WriteLine("Area of Rectagle: {0}", area);

在类范围内,就像它的声明一样。将其移至Main方法:

namespace Lesson02
{
    class Rectangle
    {
        // Method, here we execute
        static void Main(string[] args)
        { 
            // Executions are within the method
            Rectangle rect = new Rectangle(10.0, 20.0);
            double area = rect.GetArea();
            Console.WriteLine("Area of Rectagle: {0}", area);
        }

        // Declarations
        private double length;
        private double width;

        public Rectangle(double l, double w)
        {
            length = l;
            width = w;
        }

        public double GetArea()
        {
            return length * width;
        }
    }
}

答案 1 :(得分:0)

正如评论中所提到的,你的课程主体与程序代码混在一起。把所有东西放在一个班级里也是一个坏主意。

您的Rectangle类应该是分开的:

public class Rectangle
{
    private double length;
    private double width;

    public Rectangle(double l, double w)
    {
        length = l;
        width = w;

    }

    public double GetArea()
    {
        return length * width;
    }
}

您的程序代码分开:

public class Program
{
    static void Main(string[] args)
    {
        Rectangle rect = new Rectangle(10.0, 20.0);
        double area = rect.GetArea();
        Console.WriteLine("Area of Rectagle: {0}", area);
    }
}

答案 2 :(得分:0)

将类Rectangle设为public,否则更改 public Rectangle rect = new Rectangle(10.0,20.0); as Rectangle rect = new Rectangle(10.0,20.0);

    public class Rectangle
    {

        private double length;
        private double width;
        public Rectangle(double l, double w)
        {
            length = l;
            width = w;
        }

        public double GetArea()
        {
            return length * width;
        }

    }
    static void Main(string[] args)
    {
         Rectangle rect = new Rectangle(10.0, 20.0);
        double area = rect.GetArea();
        Console.WriteLine("Area of Rectagle: {0}", area);
    }