fork download
  1. // ===++===
  2. //
  3. // OrtizOL
  4. //
  5. // ===--===
  6. /*============================================================
  7. //
  8. // Clase: StructsComoArgumentos.cs
  9. //
  10. // Propósito: Observar el efecto de pasar un tipo struct
  11. // como argumento en un método.
  12. //
  13. ============================================================*/
  14.  
  15. using System;
  16.  
  17. public struct MiStruct
  18. {
  19. public double Campo;
  20. }
  21.  
  22. public class MiClase
  23. {
  24. public double Campo;
  25. }
  26.  
  27. public class DemoStruct
  28. {
  29. public static void Main()
  30. {
  31. MiStruct ms = new MiStruct();
  32. MiClase mc = new MiClase();
  33.  
  34. // Asignación de valores a los campos
  35. ms.Campo = 3;
  36. mc.Campo = 3;
  37.  
  38. CambiarValorStruct(ms);
  39. CambiarValorClase(mc);
  40.  
  41. // Muestra valores en la salida estándar
  42. Console.WriteLine("Valor de ms.Campo = {0}", ms.Campo);
  43. Console.WriteLine("Valor de mc.Campo = {0}", mc.Campo);
  44. }
  45.  
  46. public static void CambiarValorStruct(MiStruct arg)
  47. {
  48. arg.Campo = 7;
  49. }
  50.  
  51. public static void CambiarValorClase(MiClase arg)
  52. {
  53. arg.Campo = 7;
  54. }
  55. }
Success #stdin #stdout 0.03s 33920KB
stdin
Standard input is empty
stdout
Valor de ms.Campo = 3
Valor de mc.Campo = 7