Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] Problemas con clase,objetos y propiedades

Estas en el tema de Problemas con clase,objetos y propiedades en el foro de .NET en Foros del Web. Hola a todos. Bueno no puedo descubrir por mi mismo que estoy haciendo mal,el programa no me arroja ningún error pero no me imprime los ...
  #1 (permalink)  
Antiguo 03/08/2013, 10:29
RoDaVi
Invitado
 
Mensajes: n/a
Puntos:
De acuerdo Problemas con clase,objetos y propiedades

Hola a todos.
Bueno no puedo descubrir por mi mismo que estoy haciendo mal,el programa no me arroja ningún error pero no me imprime los datos que están guardados en la propiedades de la clase Datos.-
Yo consideraba que con crear un objeto en la clase imprimir de la clase Datos lo podía hacer pero evidentemente algo estoy haciendo mal.-

Código:
using System;

namespace Propiedades
{
	class ProgramaAPP
	{
		public static void Main(string[] args)
		{
			Entorno entorno = new Entorno();
			Datos DatosCte = new Datos();
			Imprimir ImprimieCte = new Imprimir();

			entorno._Entorno();
			DatosCte.datos();
			ImprimieCte._Imprimir();
		}
	}
}
Código:
using System;

namespace Propiedades
{
	public class Datos
	{
		public string Nombre { get; set; }

		public double Sueldo { get; set; }

		public void datos()
		{
			Datos dtos = new Datos();
			string lineas = "";
			do
			{
				Console.SetCursorPosition(02,02);
				Console.Write("Ingrese nombre completo....:");
				lineas = Console.ReadLine();
			}while(string.IsNullOrEmpty(lineas));
	       	dtos.Nombre = lineas;
			
	       	bool resultado;
	       	double temSueldo;
	       	while(true)
	       	{
	       		Console.SetCursorPosition(02,04);
	       		Console.Write("Ingrese el sueldo mensual..:");
	       		resultado = double.TryParse(Console.ReadLine(), out temSueldo);
	       		if(resultado && temSueldo != 0)
	       		{
	       			break;
	       		}
	       	}
			dtos.Sueldo = temSueldo;
		}
	}
}
Código:
using System;

namespace Propiedades
{
	public class Imprimir
	{
		public void _Imprimir()
		{
			Datos idc = new Datos();
			
			Console.SetCursorPosition(02,08);
			Console.Write("El cliente se llama...: {0} y gana mensualmente...$ {1}" , idc.Nombre,idc.Sueldo);
		
			Console.SetCursorPosition(02,10);
			Console.Write("Presione una tecla para cerrar la aplicación...");
			Console.ReadKey();

		}
	}
}
Código:
using System;

namespace Propiedades
{
	public class Entorno
	{
		public void _Entorno()
		{
			Console.Title = " Práctica con propiedades";
		}
	}
}
Estoy para el cachetazo psicológico, porque me suena que estoy cometiendo un error infantil.-

Saludos y desde ya muchas gracias.-
Daniel
  #2 (permalink)  
Antiguo 05/08/2013, 00:37
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Problemas con clase,objetos y propiedades

Buenas, el fallo diría que lo tienes en la función "Imprimir":

Código C++:
Ver original
  1. public void _Imprimir()
  2.         {
  3.             Datos idc = new Datos();
  4.            
  5.             Console.SetCursorPosition(02,08);
  6.             Console.Write("El cliente se llama...: {0} y gana mensualmente...$ {1}" , idc.Nombre,idc.Sueldo);
  7.        
  8.             Console.SetCursorPosition(02,10);
  9.             Console.Write("Presione una tecla para cerrar la aplicación...");
  10.             Console.ReadKey();
  11.  
  12.         }

Si te das cuenta, imprimes la variable "idc" que acabas de declarar en la primera linea del cuerpo de la función. Esto hace que tanto Nombre como Sueldo no estén definidos. Entiendo que ese es el error, no? Que capturas primero unos valores que la función Imprimir no te muestra por pantalla. Piensa que aunque sean dos objetos de la misma clase, son totalmente diferentes (instancias diferentes) y por tanto los valores que almacen también lo son.

Para solucionarlo tendrías que pasar en el main el valor de "DatosCte" a la clase Imprimir. O montar el diseño de otra forma.
__________________
Aviso: No se resuelven dudas por MP!

Última edición por Malenko; 05/08/2013 a las 00:42
  #3 (permalink)  
Antiguo 05/08/2013, 10:36
RoDaVi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problemas con clase,objetos y propiedades

Hola Malenko
Cita:
Para solucionarlo tendrías que pasar en el main el valor de "DatosCte" a la clase Imprimir.
Tal cual lo hice de esa manera y me funciona perfectamente.-

Código:
using System;

namespace PropiedadesDaniel
{
	class ProgramaAPP
	{
		public static void Main(string[] args)
		{
			Entorno configuracion = new Entorno();
			configuracion._Entorno();
				
			Datos DatosCliente = new Datos();
			DatosCliente.IngresarDatos();
			
			Imprimir ImpDtos = new Imprimir();
			ImpDtos.ImprimirDatos(DatosCliente);
			
			Console.ReadKey(true);
		}
	}
}
Código:
using System;

namespace PropiedadesDaniel
{
	public class Imprimir
	{
		public void ImprimirDatos(Datos idc)
		{
			Console.SetCursorPosition(02,06);
			Console.Write("El cliente se llama............: {0} ", idc.Nombre);
			Console.SetCursorPosition(02,08);
			Console.Write("Su sueldo mensual es de........$ {0}", idc.Sueldo);
		}
	
	}
}
Muchas gracias y Saludos.-
Daniel

Etiquetas: propiedades
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:11.