2014-04-04 75 views
1

我正在爲一個學校項目編寫一些代碼,我們要定義一個類定義一個圓以及它從中繪製方法,我的代碼到目前爲止返回「的命名空間‘控制檯’已經包含了‘圓圈’的定義,這裏是代碼:「命名空間'控制檯'已經包含'Circle'的定義」

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; 
      } 
     } 
    } 
} 

一個用於這個最後一個問題,現在我有工作代碼,集合和get應該不允許負面的輸入。但是,當這個運行時,ne gative輸入仍然返回結果,我錯過了什麼導致負值仍然被計算?

+0

也許你有兩個同名的'Circle'類? – Dmitry

+0

在同一個命名空間中有兩個名爲Circle的類。打電話給測試人員CircleTester或其他什麼.. – adaam

+0

爲什麼你給這兩個類命名爲'Circle'?用'Main'方法'Program'調用它,問題就沒有了。 –

回答

1

錯誤是非常具體的。您已經在相同的命名空間中聲明瞭兩個具有相同名稱Circle的類。你不能那樣做。編譯器需要能夠區分這兩個類,如果它們具有相同的名稱,該如何做?

我建議將包含主入口點的類的名稱更改爲更合適的內容,例如Program

此外,作爲一種良好的做法,您應該堅持一般接受的命名約定並命名您的命名空間Console,而不是console

+0

請參閱我已經嘗試過,從更改中返回的錯誤是'* blank *在當前上下文中不存在' – user3429402

+0

什麼是'空白'?它不會出現在您的代碼中。編譯時錯誤? –

+0

我在使用它來推廣對不起,它會多次返回PI和半徑 – user3429402

4

(編譯器輸出消息是你的朋友:你學會去理解他們。)

你不能有一個名爲在同一個命名空間同一事物的兩個班。

Circleconsole命名空間中出現兩次。

只需重命名其中一個。如果我是你,我會改變第一個,因爲它不是真正爲一個圓圈建模。然而,第二課是。

+0

請參閱我已經嘗試過,從更改返回的錯誤是'空白不存在於當前的上下文中' 這就是爲什麼我如果兩個類的名字相同,則 – user3429402

+0

如果使用Main to Program更改類後未找到Circle,它們不在同一個項目中,因爲它們位於相同的命名空間中,所以甚至不需要一個使用。這兩個文件都必須在項目中,最好是相同的文件夾... – Magus

相關問題