C#基类构造函数参数

use*_*435 2 c#

我学习C#.我想看看实现继承的最佳方法是什么.我有一个Employee基类和一个PartTime派生类.Employee类只接收名字和姓氏,并有一个打印全名的方法.

我想知道传递名字和姓氏的正确方法是什么,这样当我只调用PartTime类时,我也应该能够从调用程序中打印全名.目前它显示为空白全名:

class Program
{
    static void Main(string[] args)
    {
        Employee emp = new Employee("John", "Doe");
        // emp.PrintFullName();

        PartTime pt = new PartTime();

        float pay=pt.CalcPay(10, 8);
        pt.PrintFullName();  

        Console.WriteLine("Pay {0}", pay);
        Console.ReadKey();
    }
}

public class Employee
{
    string _firstName;
    string _last_name;

    public Employee(string FName, string LName)
    {
        _firstName = FName;
        _last_name = LName;
    }

    public Employee() { } 

    public void PrintFullName()
    {
        Console.WriteLine("Full Name {0} {1} ", _firstName, _last_name);
    }
}

public class PartTime : Employee
{
    public float CalcPay(int hours, int rate)
    {
        return hours * rate;
    }
}
Run Code Online (Sandbox Code Playgroud)

JLe*_*JLe 9

您可以从派生类中调用基类构造函数,如下所示:

public class PartTime : Employee
{
    public PartTime(string FName, string Lname)
         : base(FName, LName)
    { }
}
Run Code Online (Sandbox Code Playgroud)

然后创建它,

PartTime pt = new PartTime("Part", "Time");
Run Code Online (Sandbox Code Playgroud)

  • @Shiva添加此构造函数后将无法编译. (2认同)