Не смотрите пожалуйста на саму задачу, прошу обратить внимание на семантику! Не могу понять, как вызвать метод из уноследованного класса, если создан массив экземпляра класса.. Пробывал непосредственно вызвать, но что то не пойму, ругается, что неоходимо конвертировать переменную...ну и все такое...в коде написано подробно где нужно вызвать
| Код | using System; using System.Collections.Generic; using System.Text;
namespace Lab9 { class Point [color=limegreen]// Базовый класс -точка[/color] { public Point() { this.point = 25;
} public Point(int point) : this() { this.point =point; } public int Getpoint { get { return point; } set { if (value > 0) point = value; else point = 0; } } virtual public void Passport() { Console.WriteLine("Точка={0}\t ", point); } int point; }
class ColoredPoint:Point[color=green]//класс потомок от Point[/color] { public ColoredPoint() { color = "blue"; } public ColoredPoint(int point,string color) : base(point) { this.color = color; } public string GetColor { get { return color; } set { if (color != null) color = value; else Console.WriteLine("Вы ввели на строковое значение"); } } override public void Passport() { Console.WriteLine("Точка={0}\t Цвет точки={1}\t ", Getpoint , color ); } string color; }
class Line : Point[color=green]//Класс линия потомок класса Point[/color] { public Line() { line = 50; } public Line(int point,int line) : base(point) { this.line = line; } public int GetLine { get { return line; } set { if (value > 0) line = value; else line = 0; } } override public void Passport() { Console.WriteLine("Точка={0}\t Линия={1}\t ", Getpoint, line); } int line; }
class ColoredLine : Line[color=green]//Класс потомок Line и содержит метод который необходимо вызвать в Main[/color] { double x,y; public ColoredLine() { this.x = 23 ; } /* public double GetX { get { return x; } }*/ public void Ugol(double x) { y = Math.Cos (x); Console.WriteLine("Угол" + y); // return y; } /* override public void Passport() { Console.WriteLine("Угол=\t "+y); }*/ }
class PolyLine:Line[color=green]//Также содержит метод его тоже необх вызвать[/color] { public void Mashtab(double line) { line+= 100; // return line ; Console.WriteLine("Масштаб"+line );
} /* override public void Passport() { Console.WriteLine("Масштаб=\t "+ line); }*/ double line;
}
class Program { static void Main() { const int n = 3; Point[] picture = new Point[n];[color=green]//Массив содержащий ссылки [/color] picture[0] = new Point(23); picture[1] = new ColoredPoint(100,"Красный"); picture[2] = new Line(123,4); picture[3] =; [color=green] //Здесь необходимо вызвать метод из класса ColorLine[/color] // picture[4] =
foreach (Point elem in picture) elem.Passport(); ColoredLine f = new ColoredLine(); f.Ugol(3); PolyLine t = new PolyLine(); t.Mashtab(1);
|
|