C# 圆集与圆集
我有工作代码,set和get应该不允许负输入。但是,当运行此操作时,负输入仍然返回结果,我缺少什么导致仍然计算负值?另外,我将如何引入一个允许用户计算多个圆的函数C# 圆集与圆集,c#,linq,get,set,C#,Linq,Get,Set,我有工作代码,set和get应该不允许负输入。但是,当运行此操作时,负输入仍然返回结果,我缺少什么导致仍然计算负值?另外,我将如何引入一个允许用户计算多个圆的函数 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;
}
}
}
}
在构造函数中,您正在更改
公共
字段的值,而不是属性
,因此您的setter
方法永远不会执行。我认为您应该将字段设置为私有
,然后像这样更改构造函数:
private double radius;
public Circle(double r)
{
Radius = r;
}
此外,当用户尝试将负值指定给半径时,您可能希望在setter方法中显示消息或引发异常
另外,我将如何引入一个允许用户计算多个圆的函数
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();
}
}
}
您可以使用循环
。将代码放入循环中并声明计数器
for(int i = 0; i <= 5; i++)
{
/* put your code here, get the input perform the calculation
and display the message */
}
这就解决了,谢谢。现在,我将如何询问用户是否想要做另一个循环,或者如果输入一个字母,它将返回到程序的开头?我知道这将通过main方法完成,但从那以后我就迷路了。我尝试了你对循环的建议,是否有这样一种情况,即用户可以通过y/n来定义何时停止,而不是设置一定数量的尝试?y表示继续,n表示停止程序?@user3429402那么你有主意了,为什么不试试呢?