我的源代碼(下面)正在產生錯誤CS0563,因爲這兩個參數在我CombinedJobs操作者+(見「//步驟5:... 「在源代碼中)被列爲作業(而不是int,double等)。我如何更改此代碼以消除此錯誤?此代碼是爲了響應下面列出的任務。錯誤CS0563(一個二進制運算符的參數必須是包含類型)
分配:
「。設計一個招聘類哈羅德的家庭服務類包含四個數據字段,工作 描述(例如,‘洗窗’),時間以小時來完成作業( 例如,3.5),每小時的速度收取作業(例如,$ 25.00),總費用 作業(時薪次小時)。包括屬性來獲取和設置每個字段除了 總費用 - 即場將只讀,並且其值在每個時間要麼 每小時費用或小時被設定數來計算。過載+運算,使得兩個工作 可以加入。在S兩份工作的UM是含有 原職位的描述(用「和」加盟),時間以小時爲原始作業的總和, 平均原始作業時薪的新工作。寫一個Main()函數, 演示所有方法都能正常工作。將文件另存爲DemoJobs.cs「
來自:微軟的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();
}
}
JobTotalFee的二傳手是** ** EVIL。如果你使用自動屬性,你的代碼將會縮短很多。我會使用'public double JobTotalFee {get {return this.JobRate * this.JobTotalTime;}};'根本沒有後臺字段。但是你的任務要求你在JobRate和JobTotalTime的setter中設置後臺字段。不知道爲什麼。 – CodesInChaos 2010-10-30 14:01:34