[英]C# process terminated due to StackOverflowException
我正在尝试制作此程序,在第一个输出之后,我得到了图像上显示的消息。 我在网上搜索,找不到解决问题的方法。 该程序的某些部分使用西班牙语编写,因为您在拉丁国家学习是否需要翻译,请询问。 任何帮助深表感谢
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();
}
}
您在Empleado类中的所有属性都导致此:
public new string nombre
{
get
{
return nombre;
}
set
{
nombre = value;
}
}
设置并获取值时,它会自行调用。 也许你的意思是:
public new string nombre
{
get
{
return base.nombre;
}
set
{
base.nombre = value;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.