如何在我的代码中解决C#错误?

时间:2017-06-12 18:37:20

标签: c#

我是C#初学者(3天经验)。今天我在C#中练习继承。这是我的代码:

source /etc/apache2/envvars

编译器说"'矩形'的类型或命名空间无法找到",与Circle相同。怎么了?虽然我尝试了很多方法来修复它们,但我并不理解。我怎样才能找到并理解错误?

6 个答案:

答案 0 :(得分:6)

阅读错误。你从未写过一个名为Rectangle的类。 Rect不是一回事。

答案 1 :(得分:3)

您有2个错误。

错误#1是你的构造函数名和你的类名不一样

错误#2是构造函数不能有返回类型(void)

public class Rectangle
{
    public Rectangle(double length, double width)
    {
       ...
    }
}

答案 2 :(得分:1)

我认为你应该集中精力学习classmethod之间的区别。

在您的代码中,您创建了以下两个类:

public class Cir : Geometry

public class Rect : Geometry

然而,当您在Main()方法中实例化类时,不要通过类名称来调用它们,而是使用为每个类定义的void方法:

Rectangle a = new Rectangle(23.00, 21.4);
Circle b = new Circle(5.8);

您可能想要做的是将两个类重命名为Rectangle,并为每个获取所需参数的类添加Constructor

public class Circle : Geometry
{
    public Circle(double radius)
    {
        perimeter = radius * 2 * Math.PI;
        area = radius * radius * Math.PI;
    }
}

尽量保持您的方法轻松,将其限制为单一责任或目的,并相应地命名。例如,在Geometry课程中,您可以添加void PrintDetails()方法,或者更好地添加void PrintArea() AND void PrintPerimeter()方法:

public class Geometry
{
    public double perimeter;
    public double area;
    public bool special;

    public void PrintArea()
    {
        Console.WriteLine("Area: " + area);
    }

    public void PrintPerimeter()
    {
        Console.WriteLine("Perimeter: " + perimeter);
    }
}

答案 3 :(得分:0)

您只能创建类的实例/对象。你的班级名字是

Rect 

Cir 

这些类的对象名称是

  

  

B'/ P>

分别。所以你的代码应该是

 Rect  a = new Rect; 
 a.Rectangle(23.00, 21.4); //Calls your method using Rect class object
 Cir  b = new Cir; 
 b.Circle(5.8);//Calls your method using Cir class object

答案 4 :(得分:-1)

您定义的类是" Rect"例如。现在你可能认为这是" Rectangle"的缩写,编译器有一个更利他的观点 - 它不一样,所以错误。

与" Circ"相同。

现在,两个类的CONSTRUCTORS都有正确的名称(因此不是构造函数),但类名本身 - 是错误的。

答案 5 :(得分:-1)

您没有关闭命名空间几何体。 您可以创建Rect(class)或Cir,而不是Rectangle(方法)或Circle。

的实例