Al hacer un NEW, estas creando una NUEVA instancia de clase, no es lo mismo la instancia que creas dentro del Main, que la que creas dentro de Imprimir, por eso al Imprimir, muestra los valores vacíos, porque esa clase no tiene nada asignado, deberías de pasar la instancia de Datos como referencia a Imprimir.
static void Main(string[] args)
{
Entorno entorno
= new Entorno
(); Datos DatosCte
= new Datos
(); Imprimir ImprimieCte
= new Imprimir
();
entorno._Entorno();
DatosCte.datos();
ImprimieCte._Imprimir(DatosCte);
}
public class Imprimir
{
public void _Imprimir(Datos idc)
{
//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();
}
}
Igualmente no va a mostrar nada, porque adicionalmente a lo anterior, tienes otro problema. Tu clase Datos no está guardando los valores de Nombre y Sueldo, porque dentro de Datos creas una NUEVA instancia, en la cual estas seteando los valores, no estás seteando los valores de sus propiedades, estás seteando los de otra, así que sigue estando vacía.
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));
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;
}
}
Sueldo = temSueldo;
}
}
Saludos