-1
using System;
namespace lab4
{
class Lab4
{
static void Main(string[] args)
{
Prompt.prompt();
}
}
}
public class CommissionEmployee
{
public string FirstName { get; }
public string LastName { get;}
public string SSN { get;}
private decimal grossSales;
private decimal commissionRate;
public CommissionEmployee(string firstName, string lastName, string ssn, decimal grossSales, decimal commissionRate)
{
FirstName = firstName;
LastName = lastName;
GrossSales = grossSales;
CommissionRate = commissionRate;//might be wrong
}
public decimal GrossSales
{
get
{
return grossSales;
}
set
{
if (value < 0)
{
throw new ArgumentOutOfRangeException(nameof(value),
value, $"{nameof(GrossSales)} must be >=0");
}
grossSales = value;
}
}
public decimal CommissionRate
{
get
{
return commissionRate;
}
set
{
if (value <=0 || value >=1)
{
throw new ArgumentOutOfRangeException(nameof(value),
value, $"{nameof(CommissionRate)} must be > 0 and <1");
}
grossSales = value;
}
}
public virtual decimal Earnings() => CommissionRate * GrossSales;
}
public class Plumber : CommissionEmployee
{
private string custName;
private string Location;
public Plumber(string firstName, string lastName, string ssn, decimal grossSales, decimal commissionRate, string custName, string location) :
base (firstName, lastName, ssn, grossSales, commissionRate)
{
custName = CustName;
Location = location;
}
public string CustName
{
get
{
return custName;
}
set
{
CustName = value;
}
}
public string location
{
get
{
return Location;
}
set
{
location = value;
}
}
public override decimal Earnings() => GrossSales * CommissionRate;
public override string ToString() =>
$"Name: {FirstName} {LastName}/n" +
$"Social Security Number: {SSN}/n" +
$"Sales: {GrossSales}/n" +
$"Rate of Commission: {CommissionRate}/n" +
$"Customer Name: {CustName}/n" +
$"Location of Service: {Location}/n" +
$"Earnings: {Earnings()}/n";
}
public class Prompt
{
public static void prompt()
{
Plumber Plumber1 = new Plumber();
Console.WriteLine("Please enter the plumber's first name: ");
string first = Console.ReadLine();
Plumber1.CustName = first;
}
}
它不會讓我沒有在參數填充創建一個新的管道工對象。但是,這項任務試圖讓我提示用戶輸入這些屬性。它不會讓我用空parameters.Error CS7036
你有兩個選擇之間進行選擇:固定'Plumber'類,以便它有一個參數的構造函數像你想打電話,或者停止嘗試調用一個不存在的無參數構造函數。 –