Как вы сказали, ваша главная проблема в том, что вам нужен точный десятичный расчет по целым числам. Тем не менее, ваш тип возврата public int GetArea()
равен int
. Чтобы исправить вашу непосредственную проблему - просто измените ее тип на удвоенный, и это будет все!
Однако есть несколько других улучшений, которые вы можете сделать. Прежде всего - у вас есть public int CircleRadius { get; set; }
, который не используется. Затем, как сказал @Enigmativity, вы пишете это в стиле Java. Используйте автопринадлежности немного больше, это будет намного проще. И обратите внимание на ваши поля - вы объявили их, но не использовали ...
Вот очищенный класс:
class Circle
{
public double Radius {get; set;}
public double Diameter
{
get
{
return Radius * 2;
}
}
public double Area
{
get
{
return Radius * Radius * Math.PI;
}
}
public Circle()
{
this.Radius = 1;
}
}
И ваш главный будет
static void Main(string[] args)
{
Circle create = new Circle();
create.Radius = 2;
WriteLine("Radius = {0}", create.Radius);
WriteLine("Diameter = {0}", create.Diameter);
WriteLine("Area = {0}", create.Area);
}