fork download
  1. using static System.Console;
  2.  
  3. public class Program {
  4. public static void Main() {
  5. var pessoa = new Pessoa();
  6. var moto = new Moto(pessoa);
  7. var cliente = new Cliente(moto);
  8. cliente.ExibirDados();
  9. cliente.Moto.ExibirDados();
  10. cliente.Pessoa.ExibirDados();
  11. }
  12. }
  13.  
  14. public class Pessoa {
  15. public string Nome { get; set; }
  16. public int Idade { get; set; }
  17. public Pessoa() {
  18. Write("Nome: ");
  19. Nome = ReadLine();
  20. Write("Idade: ");
  21. Idade = int.Parse(ReadLine()); //não é assim que faz, só pra simplificar
  22. }
  23. public void ExibirDados() => WriteLine($"Nome: {Nome}");
  24. }
  25.  
  26. public class Cliente {
  27. public int Codigo { get; set; }
  28. public Pessoa Pessoa { get; set; }
  29. public Moto Moto { get; set; }
  30. public Cliente() {
  31. Write("Código do cliente: ");
  32. Codigo = int.Parse(ReadLine());
  33. }
  34. public Cliente(Pessoa pessoa) : this() => Pessoa = pessoa;
  35. public Cliente(Moto moto) : this(moto.Pessoa) => Moto = moto;
  36. public void ExibirDados() => WriteLine($"Código: {Codigo}");
  37. }
  38.  
  39. public class Moto {
  40. public string Cor { get; set; }
  41. public Pessoa Pessoa { get; set; }
  42. public Moto() {
  43. Write("Cor: ");
  44. Cor = ReadLine();
  45. }
  46. public Moto(Pessoa pessoa) : this() => Pessoa = pessoa;
  47. public void ExibirDados() => WriteLine($"Cor: {Cor}");
  48. }
  49.  
  50. //https://pt.stackoverflow.com/q/109591/101
Runtime error #stdin #stdout #stderr 0.02s 16232KB
stdin
a
1
stdout
Nome: Idade: Cor: Código do cliente: 
stderr
Unhandled Exception:
System.ArgumentNullException: Value cannot be null.
Parameter name: s
  at System.Int32.Parse (System.String s) [0x00003] in <6649516e5b3542319fb262b421af0adb>:0 
  at Cliente..ctor () [0x00016] in <1a39116760754bfeb387a0b123cb0245>:0 
  at Cliente..ctor (Pessoa pessoa) [0x00000] in <1a39116760754bfeb387a0b123cb0245>:0 
  at Cliente..ctor (Moto moto) [0x00007] in <1a39116760754bfeb387a0b123cb0245>:0 
  at Program.Main () [0x0000d] in <1a39116760754bfeb387a0b123cb0245>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentNullException: Value cannot be null.
Parameter name: s
  at System.Int32.Parse (System.String s) [0x00003] in <6649516e5b3542319fb262b421af0adb>:0 
  at Cliente..ctor () [0x00016] in <1a39116760754bfeb387a0b123cb0245>:0 
  at Cliente..ctor (Pessoa pessoa) [0x00000] in <1a39116760754bfeb387a0b123cb0245>:0 
  at Cliente..ctor (Moto moto) [0x00007] in <1a39116760754bfeb387a0b123cb0245>:0 
  at Program.Main () [0x0000d] in <1a39116760754bfeb387a0b123cb0245>:0