2013-06-05 96 views
0

我想获得一个矩形应用程序的工作,目的是让用户输入的长度和宽度,但我不知道如何调用方法,并获得用户输入显示在我的输出。如何使用其他类的方法?

这里是我的课(langd = lenght,bredd =瑞典宽度)

namespace _10._3 
{ 
class Rectangle 
{ 
    private double langd; 
    private double bredd; 

    public Rectangle() 
    { 

     langd = 1.0; 
     bredd = 1.0; 

    } 
    public Rectangle(double langden, double bredden) 
    { 
     langd = langden; 
     bredd = bredden; 

    } 

    public double langden 

    { 
     get 
     { 
      return langd; 
     } 
     set 
     { 
      if (value > 0 && value < 20) 
       langden = value; 

      else 
       throw new ArgumentOutOfRangeException("längd", value, "langde måste vara mer än 0 och mindre än 20 "); 
     } 

    } 
    public double bredden 
    { 
     get { 
      return bredd; 

     } 
     set { 
      if (value > 0 && value < 20) 
       bredd = value; 

      else 
       throw new ArgumentOutOfRangeException("bredd", value, "bredden måste vara mer än 0 och mindre än 20"); 

     } 
    } 
    public double omkrats 
    { 
     get 
     { 
      return 2 * langd + 2 * bredd; 
     } 
    } 
    public double area{ 
    get { 
    return langd * bredd; 
    } 


    } 
    public override string ToString() 
    { 
     return string.Format("{0}: {1}{2}: {3}{4}: {5}{6}: {7}", "Längd", langd, "bredd", bredd, "Omkräts", omkrats, "Area", area); 



    } 

} 

}

这里是我的程序:

namespace _10._3 
{ 
    class test 
    { 
     public static void Main(string[] args) 
     { 
      Rectangle rectangle = new Rectangle(); 


      Console.WriteLine("Skriv in längden :"); 
      rectangle.langden = Convert.ToDouble(Console.ReadLine()); 
      Console.WriteLine("Skriv in bredden :"); 
      rectangle.bredden = Convert.ToDouble(Console.ReadLine()); 


      Console.WriteLine(rectangle.ToString()); 

      Console.WriteLine("Längd :"); 
      Console.WriteLine("Bredd :"); 
      Console.WriteLine("Omkräts:"); 
      Console.WriteLine("Area"); 
     } 
    } 
} 
+2

说的是什么呢?? :) –

+1

@LittleChild我敢打赌,我的灵魂就是C#。 – Renan

+0

@Ranan不,请不要。 –

回答

1

你想使用属性getters/setters?(你似乎在使用setters很好)

只要把它们当作var iables

Console.WriteLine("Längd : " + rectangle.langden.ToString()); 

Console.WriteLine("Längd : {0}", rectangle.langden); 
+1

在一个相关的笔记,通用的命名标准可能会命名您的长度属性'Langd' –

+0

好的谢谢!只是我正在寻找:)但我得到一个类型'System.StackOverflowException'的未处理的异常发生在10.3.exe – user2456264

+1

@ user2456264原因是因为当你做'langden = value;'你基本上调用本身就是二传手。将该行更改为'langd = value; ' –