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;}
}
OriginalL'auteur Nooob | 2010-10-30
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas spécifié un modificateur de visibilité pour votre classe, ce qui rend interne.
Essayez de changer cette ligne:
:
OriginalL'auteur Lasse Vågsæther Karlsen
cela signifie u sont l'accès à une classe qui n'est pas public.. faire la classe public comme ça
OriginalL'auteur VJain
Vous êtes en droit de Lasse V. Karlsen vous avez besoin d'ajouter un modificateur d'accès public à l'avant de la classe d'Emploi. Sur le cas qu'une méthode du point "A" est de montrer la syntaxe d'erreur qui indique que la personne a essayé d'accéder à la zone privée. Lorsque la personne de tentative d'accès à la propriété du terrain au lieu de l'accès à un champ qui a été un champ privé.
public static void TotalPay(mode d'Emploi)
{
A: A:
double totalFee = Travail.de taux d'Emploi.temps;
Console.WriteLine("Le prix total est: {0}", TotalFee.ToString("C"));
}
}
Il y avait plusieurs endroit différent qui avaient les mêmes erreurs, il suffit de suivre toutes les de la "Une"à l'aide du Système;
public class AddJobs
{
double privé totalFee;
}
public des Emplois de la classe
{
}
OriginalL'auteur jonathan
OriginalL'auteur jonathan