Разбил код на классы, и один класс не находит другой - C#

Узнай цену своей работы

Формулировка задачи:

когда в одном файле все работает
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace пример_2ого
  6. {
  7.  
  8. class Material
  9. {
  10. private string name;
  11. private double d;
  12. public Material() { }
  13. public Material(string newName, double newV)
  14. {
  15. D = newV;
  16. Name = newName;
  17. }
  18. public string Name
  19. {
  20. get
  21. {
  22. return name;
  23. }
  24. set
  25. {
  26. name = value;
  27. }
  28. }
  29. public double D
  30. {
  31. get
  32. {
  33. return d;
  34. }
  35. set
  36. {
  37. d = value;
  38. }
  39. }
  40. public override string ToString()
  41. {
  42. return string.Format("{0};{1}", Name, D);
  43. }
  44. }
  45. class Article
  46. {
  47. private Material material;
  48. private double vol;
  49. private string name;
  50. public Article() { }
  51. public Article(string articleName, double articleVolume, Material articleMaterial)
  52. {
  53. Mat = articleMaterial;
  54. Name = articleName;
  55. Vol = articleVolume;
  56. }
  57. public double Vol
  58. {
  59. get
  60. {
  61. return vol;
  62. }
  63. set
  64. {
  65. vol = value;
  66. }
  67. }
  68. public string Name
  69. {
  70. get
  71. {
  72. return name;
  73. }
  74. set
  75. {
  76. name = value;
  77. }
  78. }
  79. public Material Mat
  80. {
  81. get
  82. {
  83. return material;
  84. }
  85. set
  86. {
  87. material = value;
  88. }
  89. }
  90. public double GetMass()
  91. {
  92. return material.D * Vol;
  93. }
  94. public override string ToString()
  95. {
  96. return string.Format("{0};{1};{2};{3}", Name, Mat.ToString(), Vol, this.GetMass());
  97. }
  98. }
  99. class Program
  100. {
  101. static void Main(string[] args)
  102. {
  103. Article art = new Article("Wire", 0.03, new Material("Steel", 7850));
  104. Console.WriteLine(art.ToString());
  105. Material cu = new Material("Cuprum", 8500);
  106. art.Mat=cu;
  107. //art.Mat.Name = "Cuprum";
  108. // art.Mat.D = 8500;// можно и так
  109. Console.WriteLine(art.ToString());
  110. Console.ReadKey();
  111. }
  112. }
  113. }
а когда в разных то article
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace пример_2ого
  6. {
  7. class Article
  8. {
  9. private Material material;
  10. private double vol;
  11. private string name;
  12. public Article() { }
  13. public Article(string articleName, double articleVolume, Material articleMaterial)
  14. {
  15. Mat = articleMaterial;
  16. Name = articleName;
  17. Vol = articleVolume;
  18. }
  19. public double Vol
  20. {
  21. get
  22. {
  23. return vol;
  24. }
  25. set
  26. {
  27. vol = value;
  28. }
  29. }
  30. public string Name
  31. {
  32. get
  33. {
  34. return name;
  35. }
  36. set
  37. {
  38. name = value;
  39. }
  40. }
  41. public Material Mat
  42. {
  43. get
  44. {
  45. return material;
  46. }
  47. set
  48. {
  49. material = value;
  50. }
  51. }
  52. public double GetMass()
  53. {
  54. return (material.D * Vol);
  55. }
  56. public override string ToString()
  57. {
  58. return string.Format("{0};{1};{2};{3}", Name, Mat.ToString(), Vol, this.GetMass());
  59. }
  60. }
  61. }
Material
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace пример_2ого
  6. {
  7. class Material
  8. {
  9. private string name;
  10. private double d;
  11. public Material() { }
  12. public Material(string newName, double newV)
  13. {
  14. D = newV;
  15. Name = newName;
  16. }
  17. public string Name
  18. {
  19. get
  20. {
  21. return name;
  22. }
  23. set
  24. {
  25. name = value;
  26. }
  27. }
  28. public double D
  29. {
  30. get
  31. {
  32. return d;
  33. }
  34. set
  35. {
  36. d = value;
  37. }
  38. }
  39. public override string ToString()
  40. {
  41. return string.Format("{0};{1}", Name, D);
  42. }
  43. }
  44. }
и мэйн
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace пример_2ого
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. Article art = new Article("Wire", 0.03, new Material("Steel", 7850));
  12. Console.WriteLine(art.ToString());
  13. Material cu = new Material("Cuprum", 8500);
  14. art.Mat=cu;
  15. //art.Mat.Name = "Cuprum";
  16. // art.Mat.D = 8500;// можно и так
  17. Console.WriteLine("Новая масса провода = ", art.GetMass());
  18. Console.ReadKey();
  19. }
  20. }
  21. }
почемуто articlle не может найти Material класс когда объявляю его полем
вот эту строку в одном варианте Material подсвечивает синим а в другом нет

private Material material;

private Material material;
строка

Решение задачи: «Разбил код на классы, и один класс не находит другой»

textual
Листинг программы
  1. namespace пример_2ого
  2. {
  3.     class Material
  4.     {
  5.         private string name {get;set;}
  6.         private double d { get; set; }
  7.  
  8.         public Material() { }
  9.  
  10.         public Material(string newName, double newV)
  11.         {
  12.             d = newV;
  13.             name = newName;
  14.         }
  15.  
  16.         public double D() {return d; }
  17.         public string Name() { return name; }
  18.  
  19.         public override string ToString()
  20.         {
  21.             return string.Format("{0};{1}", name, d);
  22.         }
  23.     }
  24. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы