Ho compilato ed eseguito correttamente il codice sorgente omettendo il campo totalFee. Come scrivo totalFee in questo programma in modo che calcoli accuratamente la tariffa totale per ogni lavoro (tasso * orario)? Sotto, vedrai che ho provato ad usare un metodo; che ha generato l'errore CS0051 (accessibilità incoerente: il tipo di parametro "Job" è meno accessibile del metodo "AddJobs.TotalPay (Job)").Errore CS0051 (accessibilità incoerente: il tipo di parametro "Lavoro" è meno accessibile del metodo "AddJobs.TotalPay (Job)")
Questo codice sorgente è in risposta alla seguente assegnazione:
". Progettare una classe di lavoro per Harold Home Servizi La classe contiene quattro campi-lavoro con dati descrizione (ad esempio,‘lavare le finestre’) , ora in ora per completare il lavoro (per esempio , 3.5), tariffa oraria applicata per il lavoro (ad esempio $ 25,00) e costo totale per il lavoro (ore orari tariffa oraria). Includi proprietà per ottenere e imposta ogni campo eccetto il costo totale: quel campo sarà di sola lettura e il suo valore verrà calcolato ogni volta o la tariffa oraria o il numero di ore è impostato. Sovraccarico dell'operatore + in modo che sia possibile aggiungere due lavori . La somma di due lavori è un nuovo lavoro contenente le descrizioni di entrambi i lavori originali (uniti da "e"), la somma del tempo in ore per i lavori originali e la media della tariffa oraria per i lavori originali. Scrivi una funzione Main() che dimostra che tutti i metodi funzionano correttamente. Salvare il file come DemoJobs.cs "
Microsoft Visual C# ® 2008, Introduzione alla programmazione orientata agli oggetti, 3e, Joyce Farrell
Ecco il codice sorgente:.
using System;
public class AddJobs
{
private double totalFee;
public AddJobs(double totalFee)
{
TotalFee = totalFee;
}
public static void Main()
{
Job job1 = new Job("washing windows", 5.00, 25.00);
Job job2 = new Job("walking a dog", 3.00, 11.00);
Job job3;
job3 = job1 + job2;
Console.WriteLine("The first job's description: {0} \nTotal time needed to complete the job: {1} hours \nHourly fee: {2} per hour", job1.Description, job1.Time, job1.Rate.ToString("C"));
TotalPay(job1);
Console.WriteLine("The second job's description: {0} \nTotal time needed to complete the job: {1} hours \nHourly fee: {2} per hour", job2.Description, job2.Time, job2.Rate.ToString("C"));
TotalPay(job2);
Console.WriteLine("The third job's description: {0} \nTotal time needed to complete the job: {1} hours \nHourly fee: {2} per hour", job3.Description, job3.Time, job3.Rate.ToString("C"));
TotalPay(job3);
}
public static void TotalPay(Job method)
{
double totalFee = Job.rate * Job.time;
Console.WriteLine("The total fee is: {0}", TotalFee.ToString("C"));
}
}
class Job
{
public Job(string description, double time, double rate)
{
Description = description;
Time = time;
Rate = rate;
}
public static Job operator+(Job first, Job second)
{
string newDescription = first.Description + " and " + second.Description;
double newTime = first.Time + second.Time;
double newRate = (first.Rate + second.Rate)/2;
double newTotalFee = newRate * newTime;
return(new Job(newDescription, newTime, newRate));
}
public string Description {get; set;}
public double Time {get; set;}
public double Rate {get; set;}
}
Ciao e benvenuto su Stack Overflow. Un suggerimento amichevole, utilizzare il tasto 010101 sulla barra degli strumenti dopo aver selezionato tutto il codice per rientrare di quattro spazi, in questo modo anche le dichiarazioni vengono formattate come codice. –