Erreur CS0051 (Incompatible accessibilité: paramètre type de "Travail" est moins accessible que la méthode 'AddJobs.TotalPay(Job)')

J'ai compilé et exécuté le code source ci-dessous avec succès par l'omission de la totalFee champ. Comment puis-je écrire totalFee dans ce programme de sorte qu'il permettra de calculer avec précision le montant total des frais pour chaque poste de travail (taux d' * temps)? Ci-dessous, vous allez voir que j'ai essayé à l'aide d'une méthode; ce qui a généré l'erreur CS0051 (Incompatible accessibilité: paramètre type de "Travail" est moins accessible que la méthode 'AddJobs.TotalPay(Job)').

Ce code source est en réponse à l'affectation suivante:

"La conception d'une classe d'Emploi pour Harold de Services à Domicile. La classe contient quatre champs de données—Travail
description (par exemple, “se laver les fenêtres”), le temps en heures pour terminer le Travail (pour
exemple 3.5), par le taux horaire pour le Travail (par exemple, $25.00), et le total des frais pour
le Travail (le salaire horaire multiplié par le nombre d'heures). Incluent des propriétés d'obtenir et de définir chaque champ, à l'exception
le total des frais que le champ est en lecture seule, et sa valeur est calculée à chaque fois, soit
le tarif horaire ou le nombre d'heures est fixé.
La surcharge de l'opérateur+, de sorte que deux Emplois
peut être ajouté. La somme de deux Emplois un nouvel Emploi contenant la description des deux
original Emplois ( rejoint par “et”), la somme des temps en heures pour les Emplois d'origine, et
la moyenne du taux horaire prévu à l'origine pour les Emplois. Écrire une fonction main()qui montre que toutes les méthodes fonctionnent correctement. Enregistrez le fichier en tant que DemoJobs.cs."

Microsoft® Visual C#® 2008, Une 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;}
}
Bonjour, et bienvenue à Débordement de Pile. Un amical conseil, utiliser le 010101 clé dans la barre d'outils après avoir sélectionné tous les code pour le retrait de quatre espaces, de cette façon, même les déclarations est formaté en tant que code.

OriginalL'auteur Nooob | 2010-10-30