0

我正在尝试制作这个程序,在第一次输出后,我得到了图像上显示的消息。我在网上搜索并找不到解决问题的方法。该计划的某些部分是用西班牙语编写的,因为您在拉丁国家学习,如果需要任何翻译,请询问。任何帮助深表感谢

http://i.stack.imgur.com/F9DTE.png

using System;

class Persona
{
    protected string nombre;
    protected string segsoc;
    public Persona()
    {
        nombre = "";
        segsoc = "";
        Console.WriteLine("Objeto Persona construido.");
    }
    ~Persona()
    {
        Console.WriteLine("Objeto Persona destruido.");
    }
}

class Empleado : Persona
{
    private double laPagaHora;
    private double lasHoras;
    public new string nombre
    {
        get
        {
            return nombre;
        }
        set
        {
            nombre = value;
        }
    }
    public new string segsoc
    {
        get
        {
            return segsoc;
        }
        set
        {
            segsoc = value;
        }
    }
    public double pagaHora
    {
        get
        {
            return laPagaHora;
        }
        set
        {
            laPagaHora = value;
        }
    }
    public double horas
    {
        get
        {
            return lasHoras;
        }
        set
        {
            this.lasHoras = value;
        }
    }
    public double paga
    {
        get
        {
            return laPagaHora * lasHoras;
        }
    }
    public Empleado()
    {
        Console.WriteLine("Objeto Empleado construido.");
    }
    ~Empleado()
    {
        Console.WriteLine("Objeto Empleado destruido.");
    }
}

class Demo
{
    private static void Main()
    {
        Empleado empleado = new Empleado();
        Console.WriteLine("\nEntre los datos siguientes.");
        Console.Write("Nombre: ");
        empleado.nombre = Console.ReadLine();
        Console.Write("Seguro social: ");
        empleado.segsoc = Console.ReadLine();
        Console.Write("Paga por hora: ");
        empleado.pagaHora = double.Parse(Console.ReadLine());
        Console.Write("Horas trabajadas: ");
        empleado.horas = double.Parse(Console.ReadLine());
        Console.WriteLine("\n--- Datos del empleado ---");
        Console.WriteLine("Nombre: " + empleado.nombre);
        Console.WriteLine("Seguro social: " + empleado.segsoc);
        Console.WriteLine("Paga por hora: {0:C}", empleado.pagaHora);
        Console.WriteLine("Horas trabajadas: " + empleado.horas);
        Console.WriteLine("Paga: {0:C}", empleado.paga);
        Console.WriteLine();
        Console.Write("Press 'Enter' to finish...");
        Console.ReadLine();
    }
}
4

1 回答 1

4

Empleado 类中的所有属性都导致了这种情况:

public new string nombre
    {
        get
        {
            return nombre;
        }
        set
        {
            nombre = value;
        }
    }

当您设置并获取值时,这将调用自身。也许你的意思是:

public new string nombre
    {
        get
        {
            return base.nombre;
        }
        set
        {
            base.nombre = value;
        }
    }
于 2013-10-26T21:02:52.057 回答