Мой исходный код (ниже) генерирует ошибку CS0563, потому что оба параметра в моем операторе CombinedJobs + (см. "// Шаг 5: ..." в исходном коде) указаны как задания (в отличие от int, double, так далее). Как я могу изменить этот код, чтобы устранить эту ошибку? Этот код является ответом на присвоение, указанное ниже.
Назначение:
"Разработка класса Job для Harold's Home Services. Класс содержит четыре поля данных - Job
описание (например, «мытье окон»), время в часах для завершения работы (для
например, 3,5), почасовая ставка, взимаемая за работу (например, 25,00 долл. США), и общая плата за
Работа (почасовая ставка, часы). Включите свойства, чтобы получить и установить каждое поле, кроме
общая плата - это поле будет доступно только для чтения, и его значение рассчитывается каждый раз, когда
почасовая оплата или количество часов установлено. Перегрузите оператор +, чтобы два задания
можно добавить Сумма двух заданий - это новое задание, содержащее описания обоих
исходные задания (объединенные «и»), сумма времени в часах для исходных заданий и
среднее значение почасовой ставки для оригинальных рабочих мест. Напишите функцию Main (), которая
демонстрирует, что все методы работают правильно. Сохраните файл как DemoJobs.cs. "
От: Microsoft® Visual C # ® 2008, Введение в объектно-ориентированное программирование, 3e, Джойс Фаррелл
Исходный код:
using System;
//Step 1: Creating the Job class and designating its fields
public class Job
{
private string jobDescription;
private int jobTotalTime;
private double jobRate;
private double jobTotalFee;
//Step 2: Using the 'this' object will allow me to designate values for
//"this" instantiation of an object later in the program
public string JobDescription
{
get
{
return this.jobDescription;
}
set
{
this.jobDescription = value;
}
}
public int JobTotalTime
{
get
{
return this.jobTotalTime;
}
set
{
this.jobTotalTime = value;
}
}
public double JobRate
{
get
{
return this.jobRate;
}
set
{
this.jobRate = value;
}
}
public double JobTotalFee
{
get
{
return this.jobTotalFee;
}
set
{
this.jobTotalFee = this.JobRate * this.JobTotalTime;
}
}
//Step 3: Creating a method will allow me to display the different jobs
//with their descriptions and other variable fields later in the program
public void JobMessage()
{
Console.WriteLine("Job description: {0} /nTotal time needed to complete the job: {1} hours /nHourly fee: ${2} /nTotal fee for the job is: ${3}", this.JobDescription, this.JobTotalTime, this.JobRate, this.JobTotalFee);
}
}
//Step 4: Creating two instantiations of the Job Class
public class CreateTwoJobs
{
public static void Main()
{
Job jobA = new Job();
Job jobB = new Job();
jobA.JobDescription = "washing windows";
jobA.JobTotalTime = 5;
jobA.JobRate = 25.00;
jobB.JobDescription = "walking dogs";
jobB.JobTotalTime = 10;
jobB.JobRate = 11.00;
jobA.JobMessage();
jobB.JobMessage();
}
}
//Step 5: Creating a third instantiation of the Job Class that is a combination
//of the first two instantiations using the overloaded + operator
public class CombinedJobs
{
public CombinedJobs(string jobDescription, int jobTotalTime, double jobRate, double jobTotalFee)
{
JobDescription = jobDescription;
JobTotalTime = jobTotalTime;
JobRate = jobRate;
JobTotalFee = jobTotalFee;
}
public static CombinedJobs operator+(Job jobA, Job jobB)
{
string newDescription = jobA.JobDescription + " and " + jobB.JobDescription;
int newTotalTime = jobA.JobTotalTime + jobB.JobTotalTime;
double newJobRate = (jobA.JobRate + jobB.JobRate) / 2;
double newTotalFee = newJobRate * newTotalTime
}
public void CombinedJobMessage()
{
Console.WriteLine("Job description: {0} /nTotal time needed to complete the job: {1} hours /nHourly fee: ${2} /nTotal fee for the job is: ${3}", newDescription, newTotalTime, newJobRate, newTotalTime);
}
public static void Main()
{
CombinedJobMessage();
}
}