fork download
  1. using System;
  2.  
  3. namespace Articulos.Preguntas
  4. {
  5. // Definición estructura para la entidad `Punto`:
  6. public struct EstructuraPunto
  7. {
  8. public int x;
  9. public int y;
  10.  
  11. public EstructuraPunto(int x, int y)
  12. {
  13. this.x = x;
  14. this.y = y;
  15. }
  16. }
  17.  
  18. // Define la clase para la entidad `Punto`:
  19. public class ClasePunto
  20. {
  21. public int x;
  22. public int y;
  23.  
  24. public ClasePunto(int x, int y)
  25. {
  26. this.x = x;
  27. this.y = y;
  28. }
  29. }
  30.  
  31. public sealed class EstructuraVsClase
  32. {
  33. public static void Main()
  34. {
  35. EstructuraPunto estructuraPunto = new EstructuraPunto();
  36. estructuraPunto.x = 11;
  37. estructuraPunto.y = 11;
  38.  
  39. Console.WriteLine("\nValores iniciales de la estructura son: x = {0}, y = {1}",
  40. estructuraPunto.x.ToString(), estructuraPunto.y.ToString());
  41. ModificacionEstructuraPunto(estructuraPunto);
  42. Console.WriteLine("Después de invocar `ModificacionEstructuraPunto`, los valores de la estructura son: x = {0}, y = {1}",
  43. estructuraPunto.x.ToString(), estructuraPunto.y.ToString());
  44.  
  45. Console.WriteLine();
  46.  
  47. ClasePunto clasePunto = new ClasePunto(11, 11);
  48. Console.WriteLine("\nValores iniciales de la clase son: x = {0}, y = {1}",
  49. clasePunto.x.ToString(), clasePunto.y.ToString());
  50. ModificacionClasePunto(clasePunto);
  51. Console.WriteLine("Después de invocar `ModificacionClasePunto`, los valores de la clase son: x = {0}, y = {1}",
  52. clasePunto.x.ToString(), clasePunto.y.ToString());
  53.  
  54. Console.WriteLine();
  55. }
  56.  
  57. static void ModificacionEstructuraPunto (EstructuraPunto punto)
  58. {
  59. punto.x = 19;
  60. punto.y = 19;
  61.  
  62. Console.WriteLine ("\nMétodo `ModificacionEstructuraPunto`");
  63. Console.WriteLine ("Los valores modificados del parámetro `punto`: x = {0}, y = {1}", punto.x.ToString(), punto.y.ToString());
  64. }
  65.  
  66. static void ModificacionClasePunto(ClasePunto punto)
  67. {
  68. punto.x = 19;
  69. punto.y = 19;
  70.  
  71. Console.WriteLine ("\nMétodo `ModificacionClasePunto`");
  72. Console.WriteLine ("Los valores modificados del parámetro `punto`: x = {0}, y = {1}", punto.x.ToString(), punto.y.ToString());
  73. }
  74. }
  75. }
Success #stdin #stdout 0.03s 33936KB
stdin
Standard input is empty
stdout
Valores iniciales de la estructura son: x = 11, y = 11

Método `ModificacionEstructuraPunto`
Los valores modificados del parámetro `punto`: x = 19, y = 19
Después de invocar `ModificacionEstructuraPunto`, los valores de la estructura son: x = 11, y = 11


Valores iniciales de la clase son: x = 11, y = 11

Método `ModificacionClasePunto`
Los valores modificados del parámetro `punto`: x = 19, y = 19
Después de invocar `ModificacionClasePunto`, los valores de la clase son: x = 19, y = 19