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,则它们不在同一个项目中。因为它们位于同一名称空间中,所以您甚至不需要使用。这些文件必须同时存在于项目和预处理中