C#在控制台中没有信息返回

很抱歉,这可能是一个非常愚蠢的问题,但是我只是在课堂上学习C#,而在分配作业时遇到了麻烦。我的HourlyEmployee类中有这两种方法,它们不返回任何信息。而且我没有错误消息,因此在尝试弄清楚自己在做什么错时遇到了麻烦。

Program.cs文件

var jumpscare;
var backgroundMusic;

music();

function music() {
jumpscare = new sound("jumpscare.mp3");
backgroundMusic = new sound("bgmusic.mp3");
backgroundMusic.play();
}

HourlyEmployee.cs文件

using System;
using System.Collections.Generic;
using System.Linq;

namespace Assignment5
{
    abstract class Employee
    {
        private string firstName = "";
        private string lastName = "";
        private int EmployeeID;

        public Employee(string firstname,string lastname,int employeeid)
        {
            firstName = firstname;
            lastName = lastname;
            EmployeeID = employeeid;
        }

        public abstract float CalculatePay();

    }

    public class Program
    {
        public static void Main(string[] args)
        {
            List<Employee> employees = new List<Employee>();

            employees.Add(new HourlyEmployee("Joe","Smith",1234,12.50f,40));
            employees.Add(new CommissionEmployee("Alice","Mason",4321,20,1000));
            employees.Add(new HourlyEmployee("Richard","Lionheart",1212,11.75f,43));
            employees.Add(new CommissionEmployee("Mark","Wells",9876,21,4300));

            foreach(Employee e in employees)
            {
                e.CalculatePay();
                e.ToString();
            }
        }
    }
}

我的CalculatePay()和ToString()方法肯定被破坏了,我不确定在那里做错了什么。

ping00000 回答:C#在控制台中没有信息返回

您的源代码可能还可以。我认为您想显示由ToString()方法产生的消息,因此您需要告诉程序这样做。我的意思是,方法ToString返回一个string,但您对此却无能为力。为此使用Console.WriteLine()函数。

示例:

foreach(Employee e in employees)
{
    e.CalculatePay();
    Console.WriteLine(e.ToString());
}
,

我很确定您没有为hourlyRatehoursWorked分配任何东西

您应该从构造函数中的构造函数参数中分配它们。

编辑:也正如DontVoteMeDown一样-您实际上并没有在Main内输出任何内容。

,

hourlyRatehoursWorked未在您的代码中初始化,默认值为0

您可以从HourlyEmployee类的构造函数中初始化这些值,如下所示:-

 public HourlyEmployee(string firstname,string lastname,int employeeid,float hourlyRate,int hoursWorked) : base(firstname,lastname,employeeid)
        {
            this.hourlyRate = hourlyRate;
            this.hoursWorked = hoursWorked;
        }

此外,您可能将以下字段设为私有。

public float hourlyRate;
public int hoursWorked;
本文链接:https://www.f2er.com/3169534.html

大家都在问