Параметры круга. get{} и set{} - C#
Формулировка задачи:
Дан радиус круга. Надо вывести диаметр, площадь и длину круга. Написал вот так:
Препод пишет, что нельзя напрямую задать диаметр. Как это исправить?
struct CircleParameters
{
private double radius;
private double diameter;
private double square;
private double circleLength;
public double Radius
{
get
{
return radius;
}
set
{
radius = value;
}
}
public double Diameter
{
get
{
return diameter = Radius * 2;
}
}
public double Square
{
get
{
return square = Math.PI * Math.Pow(Radius, 2);
}
}
public double CircleLength
{
get
{
return circleLength = Math.PI * Diameter; ;
}
}
}
static void Main(string[] args)
{
double radius = double.Parse(Console.ReadLine());
var parameters = new CircleParameters();
parameters.Radius = radius;
Console.WriteLine(parameters.Diameter);
Console.WriteLine(parameters.Square);
Console.WriteLine(parameters.CircleLength);
}
И площадь с длиной тоже чтобы можно было вводить напрямую.
Решение задачи: «Параметры круга. get{} и set{}»
textual
Листинг программы
using System;
class Strings
{
struct CircleParameters
{
private double radius;
public double Radius
{
get
{
return radius;
}
set
{
if (value > 0)
radius = value;
}
}
public double Diameter
{
get
{
return Radius * 2;
}
set
{
if (value > 0)
radius = value / 2;
}
}
public double Square
{
get
{
return Math.PI * Math.Pow(Radius, 2);
}
set
{
if (value > 0)
radius = Math.Sqrt(value / Math.PI);
}
}
public double CircleLength
{
get
{
return Math.PI * Diameter;
}
set
{
if (value > 0)
radius = value / (2 * Math.PI);
}
}
public override string ToString()
{
return string.Format("Радиус {0}\nДиаметр {1}\nПлощадь {2}\nДлина окружности {3}\n", Radius, Diameter, Square, CircleLength);
}
}
static void Main(string[] args)
{
var circle = new CircleParameters();
circle.Radius = 20;
Console.WriteLine(circle);
circle.Diameter = 100;
Console.WriteLine(circle);
circle.Square = 200;
Console.WriteLine(circle);
circle.CircleLength = 300;
Console.WriteLine(circle);
}
}