我不确定为什么,但是当我把断点放进去并逐步执行我的代码时,每个属性都返回null或0,当它们应该是我放在main中的值时,我疯狂的类的实例.
这是我的主要
namespace DemoJobs
{
class Program
{
static void Main(string[] args)
{
string desc;
decimal rate, time, total;
Job job1 = new Job("Pour Driveway", 8m, 50.00m);
Job job2 = new Job("Instal New Windows", 18m, 120m);
Job job3 = job1 + job2;
Console.WriteLine("The {0} job will take {1} hours, costing {2} per hour with a total of {3}",
job1.Description, job1.Time, job1.Rate.ToString("C"), job1.Total.ToString("C"));
Console.WriteLine("The {0} job will take {1} hours, costing {2} per hour with a total of {3}",
job2.Description, job2.Time, job2.Rate.ToString("C"), job2.Total.ToString("C"));
Console.WriteLine("The {0} job will take {1} hours, costing {2} per hour with a total of {3}",
job3.Description, job3.Time, job3.Rate.ToString("C"), job3.Total.ToString("C"));
Console.ReadLine();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的班级
namespace DemoJobs
{
public class Job
{
// variables
private string _description;
private decimal _time, _rate, _total;
// property for the job description
public string Description
{
get { return _description; }
set { _description = value; }
}
// property for the total job time
public decimal Time
{
get { return _time; }
set { _time = value; CalcTotal(); }
}
// property for the jobs hourly rate
public decimal Rate
{
get { return _rate; }
set { _rate = value; CalcTotal(); }
}
// read-only property for the job total
public decimal Total
{
get { return _total; }
}
// method to calculate the total for the job
public decimal CalcTotal()
{
_total = _rate * _time;
return _total;
}
// constructor
public Job(string description, decimal time, decimal rate)
{
Description = _description;
Time = _time;
Rate = _rate;
}
public static Job operator +(Job job1, Job job2)
{
string newDescription = job1.Description + " and " + job2.Description;
decimal newTime = job1.Time + job2.Time;
decimal newRate = (job1.Rate + job2.Rate) / 2;
decimal newTotalFee = newRate * newTime;
return (new Job(newDescription, newTime, newRate));
}
}
}
Run Code Online (Sandbox Code Playgroud)
简单地改变(例子)
Description = _description;
Time = _time;
Rate = _rate;
Run Code Online (Sandbox Code Playgroud)
至
Description = description;
Time = time;
Rate = rate;
Run Code Online (Sandbox Code Playgroud)
在当前代码中,您使用实例字段,而不是实际的ctor参数.修改你的ctor重载,注意这方面,你完成了.
| 归档时间: |
|
| 查看次数: |
261 次 |
| 最近记录: |