J'ai compilé et exécuté le code source ci-dessous avec succès en omettant le champ totalFee. Comment écrire TotalFee dans ce programme afin qu'il calcule avec précision les frais totaux pour chaque travail (taux * temps)? Ci-dessous, vous verrez que j'ai essayé d'utiliser une méthode; qui a généré l'erreur CS0051 (Accessibilité incohérente: le type de paramètre 'Job' est moins accessible que la méthode 'AddJobs.TotalPay (Job)').Erreur CS0051 (Accessibilité incohérente: le type de paramètre 'Job' est moins accessible que la méthode 'AddJobs.TotalPay (Job)')
Ce code source est en réponse à l'affectation suivante:
« . Concevez une classe d'emploi pour les services d'accueil Harold La classe contient quatre champs d'emploi données description (par exemple, « laver les fenêtres ») , le temps en heures pour terminer le travail (pour exemple, 3.5), taux par heure facturé pour le travail (par exemple, 25,00 $), et le total des frais pour le travail (taux horaire multiplié par les heures) Inclure les propriétés pour obtenir et définir chaque champ à l'exception de le montant total de ce champ sera en lecture seule, et sa valeur est calculée chaque fois que le tarif horaire ou le nombre d'heures est fixé. Surcharge l'opérateur + afin que deux Jobs puissent être ajoutés. La somme de deux Jobs est un nouveau Job contenant les descriptions des Jobs d'origine (jointes par "et"), la somme du temps en heures pour les Jobs d'origine, et la moyenne du taux horaire pour les Jobs d'origine. Écrivez une fonction Main() qui démontre que toutes les méthodes fonctionnent correctement. Enregistrez le fichier sous DemoJobs.cs «
Microsoft® Visual C# ® 2008, Introduction à la programmation orientée objet, 3e, Joyce Farrell
Voici le code source.
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;}
}
Salut, et bienvenue à Stack Overflow. Un conseil amical, utilisez la clé 010101 sur la barre d'outils après avoir sélectionné tout le code pour indenter quatre espaces, de cette façon même les déclarations sont formatées en code. –