Erro CS0051 (acessibilidade inconsistente: o tipo de parâmetro 'Job' é menos acessível que o método 'AddJobs.TotalPay (Job)')
Compilei e executei o código-fonte abaixo com sucesso, omitindo o campo totalFee. Como escrevo o totalFee neste programa para que ele calcule com precisão a taxa total de cada trabalho (taxa * tempo)? Abaixo, você verá que tentei usar um método; que gerou o erro CS0051 (acessibilidade inconsistente: o tipo de parâmetro 'Job' é menos acessível que o método 'AddJobs.TotalPay (Job)').
Este código fonte é uma resposta à seguinte atribuição:
"Crie uma classe de trabalho para os serviços domésticos da Harold. A classe contém quatro campos de dados: descrição do trabalho (por exemplo," janelas de lavagem "), tempo em horas para concluir o trabalho (por exemplo, 3,5), taxa por hora cobrada pela Trabalho (por exemplo, US $ 25,00) e taxa total do trabalho (taxa horária x horas).Inclua propriedades para obter e definir cada campo, exceto a taxa total - esse campo será somente leitura e seu valor será calculado sempre que a taxa horária ou o número de horas for definido. Sobrecarregue o operador + para que dois trabalhos possam ser adicionados. A soma de dois trabalhos é um novo trabalho que contém as descrições dos dois trabalhos originais (unidos por "e"), a soma do tempo em horas dos trabalhos originais e a média da taxa horária dos trabalhos originais. Escreva uma função Main () que demonstre que todos os métodos funcionam corretamente. Salve o arquivo como DemoJobs.cs. "
Microsoft® Visual C # ® 2008, Uma Introdução à Programação Orientada a Objetos, 3e, Joyce Farrell
Aqui está o código fonte:
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;}
}