Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# &引用;名称空间';控制台';已包含';圆圈'&引用;_C#_Class_Methods_System_Geometry - Fatal编程技术网

C# &引用;名称空间';控制台';已包含';圆圈'&引用;

C# &引用;名称空间';控制台';已包含';圆圈'&引用;,c#,class,methods,system,geometry,C#,Class,Methods,System,Geometry,我正在为一个学校项目编写一些代码,其中我们将有一个类定义一个圆和一个从中绘制的方法,到目前为止,我的代码返回“名称空间‘控制台’已经包含‘圆’的定义。下面是代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace console { class Program { static void Main(string[] ar

我正在为一个学校项目编写一些代码,其中我们将有一个类定义一个圆和一个从中绘制的方法,到目前为止,我的代码返回“名称空间‘控制台’已经包含‘圆’的定义。下面是代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace console
{
    class Program
    {

        static void Main(string[] args)
        {

            Console.Write("What is the circle’s radius: ");
            double radius = Convert.ToDouble(Console.ReadLine());
            Circle ans = new Circle(radius);


            Console.WriteLine("The area of the circle is " + ans.getArea);
            Console.WriteLine("The Diameter of the circle is " + ans.getDiameter);
            Console.WriteLine("The Circumference of the circle is " + ans.getCircumference);

            Console.Write("Enter any character to quit program. ");
            double stop = Console.Read();

        }
    }
}
这就是方法和类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace console
{
    class Circle
    {

 public double radius;
            public const double PI = 3.14159;
            public Circle(double r)
            {
            radius = r;
        }
        public Circle()
        {
            radius = 0.0;
        }

        public double getDiameter
        {
            get
            {
                return radius * 2;
            }

        }


        public double getArea
        {
            get
            {
                return PI * radius * radius;
            }

        }
        public double getCircumference
        {
            get
            {
                return 2 * PI * radius;
            }

        }
        // property Radius 
        public double Radius
        {
            get
            {
                return radius;
            }

            set
            {
                // ensure non-negative radius value 
                if (value >= 0)
                    radius = value;
            }
        }
    }
}

最后一个问题是,既然我有了工作代码,set和get应该不允许负输入。但是,当运行此操作时,负输入仍然返回结果,我缺少了什么导致仍然计算负值?

错误非常具体。您已经声明了两个同名的类
在同一名称空间中圈出
。你不能这样做。编译器需要能够区分这两个类,如果它们具有相同的名称,它如何做到这一点

我建议将包含主入口点的类的名称更改为更合适的名称,例如
Program


此外,作为一种良好的做法,您应该坚持公认的命名约定,并将命名空间命名为
Console
,而不是
Console
,。错误非常具体。您已在同一命名空间中声明了两个同名的类
圆圈
。您不能这样做。编译器需要能够区分在这两个类之间,如果它们具有相同的名称,它如何做到这一点

我建议将包含主入口点的类的名称更改为更合适的名称,例如
Program

此外,作为一种良好的实践,您应该坚持公认的命名约定,将名称空间命名为
Console
,而不是
Console
(编译器输出消息是您的朋友:一定要学会理解它们。)

在同一命名空间中不能有两个名称相同的类

圆圈
控制台
命名空间中出现两次

只需重命名其中一个。如果我是你,我会更改第一个,因为它不是真正的圆建模。但是第二个类是。

(编译器输出消息是你的朋友:一定要学会理解它们。)

在同一命名空间中不能有两个名称相同的类

圆圈
控制台
命名空间中出现两次



只需重命名其中一个。如果我是你,我会更改第一个,因为它不是真正的圆建模。但是第二个类是。

也许你有两个同名的类
circle
?在同一名称空间中有两个名为circle的类。请致电测试人员CircleTester或其他什么。你为什么命名这两个类
Circle
?使用
Main
方法
Program
或其他方法调用该类,问题就消失了。可能您有两个同名的类
Circle
?在同一命名空间中有两个名为Circle的类。请调用测试仪CircleTester或其他东西。为什么要将这两个类命名为
Circle
?调用该类使用
Main
方法
Program
或其他方法,问题就解决了。请看,我已经尝试过了,更改返回的错误是“blank在当前上下文中不存在”什么是“blank”?这不会出现在您的代码中。这是运行时错误还是编译时错误?我用它来概括抱歉,它会多次返回PI和radius。抱歉,我不太明白。如果用Main将类重命名为Program,它会编译吗?这是第一步。如果不是,那么在同一个项目(即控制台项目)中显示代码的两个类都是吗?如果项目确实编译,并且错误是运行时错误,调试器(或Visual Studio中的异常帮助框)应该告诉您异常发生在哪一行,这是哪一行?啊,等等,我明白了。您已经在Program类中定义了PI和radius,因此在Circle类中无法访问它们。将圆周率常数和半径字段移动到圆类中。。。这会让事情向前发展!这个错误令人困惑,因为您的代码非常接近于工作状态,如果您使两个Circle类都是部分的,那么它可能会工作。但这不是解决问题的正确方法。您需要将Circle类及其基于圆的值/方法与主程序正确分离。请参阅,我已经尝试过,更改返回的错误是“当前上下文中不存在blank”“什么是‘空白’?这不会出现在您的代码中。这是运行时错误还是编译时错误?我用它来概括抱歉,它会多次返回PI和radius。抱歉,我不太明白。如果用Main将类重命名为Program,它会编译吗?这是第一步。如果不是,那么在同一个项目(即控制台项目)中显示代码的两个类都是吗?如果项目确实编译,并且错误是运行时错误,调试器(或Visual Studio中的异常帮助框)应该告诉您异常发生在哪一行,这是哪一行?啊,等等,我明白了。您已经在Program类中定义了PI和radius,因此在Circle类中无法访问它们。将圆周率常数和半径字段移动到圆类中。。。这会让事情向前发展!这个错误令人困惑,因为您的代码非常接近于工作状态,如果您使两个Circle类都是部分的,那么它可能会工作。但这不是解决问题的正确方法。您需要将Circle类及其基于圆的值/方法与主程序正确分离。请参阅,我已经尝试过,更改返回的错误是“当前上下文中不存在blank”“这就是为什么我使用它,使两个类的名称相同。如果将Main类更改为Program后未找到Circle,则它们不在同一个项目中。因为它们位于同一名称空间中,所以您甚至不需要使用。这些文件必须同时存在于项目和预处理中