【发布时间】:2014-09-14 09:27:32
【问题描述】:
我是编程新手,目前正在学习 C# 课程。我迷失了这周的任务。这是我的任务:
创建一个包含“距离”类的文件。内部距离保持在 1/64 英寸的精度。
距离必须有一个私有的无符号整数变量“SixtyFourths”,这个整数的确切值应该是距离所代表的 1/64 英寸的计数。
创建一个“英寸”属性以获取和设置与双精度值的距离(以英寸为单位)。
创建一个属性“Feet”以获取和设置与双精度值的距离(以英尺为单位)。
创建一个属性“Meters”以获取和设置与以米为单位的双精度值的距离。
创建属性“FtInFraction”以字符串形式获取当前距离,或者设置与字符串的距离,下面指定必须使用的字符串格式。
根据需要编写私有方法来完成所需的工作。只有属性和构造函数可以是公共的。
在将浮点值转换为整数时,请务必使用正确的舍入规则。
在“main”中编写一个简短的程序。内部主要:
创建您的类定义的对象距离的实例。
距离演示 = new Distance(); Demo.Feet = 1.1;字符串 FeetInchesFraction = Demo.FtInFraction; // 应该是:“1' 1 13/64”” Demo.FtInFraction = “3' 3 3/8””;双米 = Demo.Meters; // 由于四舍五入,将是 1.00125 米
使用控制台输出的屏幕截图进行详尽的测试。详尽的测试通过数千种可能性对课程进行练习,以验证 FtInFraction 在所有情况下生成和解释字符串值。这很容易通过循环来完成。
这是我目前为该课程编写的代码:
namespace Measurement_Converter
{
class Distance
{
public double Meters
{
get
{
return Meters;
}
set
{
Meters = 0;
}
}
// Feet
public double Feet
{
get
{
return Meters / .30480;
}
set
{
Meters = value * 3.34375;
}
}
public string FeetString
{
get
{
StringBuilder SB = new StringBuilder();
return SB.ToString();
}
set
{
string raw = value;
}
}
// Inches
private int SixtyFourths;
public double Inches
{
get
{
return SixtyFourths;
}
set
{
SixtyFourths = 0;
if (value % 2 == 0)
return;
SixtyFourths = (int)(value / 2);
}
}
public double FtInFraction
{
get
{
return FtInFraction;
}
set
{
}
}
}
}
这是我为 main 编写的代码:
namespace Measurement_Converter
{
class Program
{
static void Main(string[] args)
{
Distance T = new Distance();
T.Meters = 12;
string Test = T.FeetString;
}
}
}
我目前的问题是我在仪表类的 set 部分遇到了 stackoverflowexception。我肯定会遇到的问题是由于我缺乏经验。我希望有人可以帮助我理解堆栈溢出错误,并可能帮助我了解我可能需要对程序的其余部分做什么,或者至少是一个类似的例子,我可以用来尝试理解这一点外语。另外,我了解了作业的要点,但是如果有人可以尝试用外行的方式解释测试部分。我不希望有人为我做我的工作,但是这个任务让我很困惑,它让我很沮丧。
【问题讨论】:
标签: c# properties stack-overflow