Triangle Program In C#.net
Posted By admin On 18.10.19Узнать стоимость вашей работы. Код к задаче: «Создать класс Triangle - C# (195541)». Using System; namespace Tria {. Class Triangle {. Double x, y, z; public Triangle(double x, double y, double z) //конструктор для создания треугольника {. This.x = x; this.y = y. Class Program {. Static void Main(string[] args) {. Console.WriteLine('Vvodim storony 1..NET 4.x Заполнения List из соседнего класса - C#. Класс с двумя свойствами массивами - C#. Перегрузка операторов в обобщенном классе. Сложение, вычитание типов T - C#. Класс Masif - исключение NullReferenceException - C#. Создать массив из свойста который находится в Листе - C#.
Наследование 363 Площадь равна 40 Объект — треугольник Площадь равна 24.5 Объект — общая форма Метод Area должен быть переопределен Площадь равна 0 Рассмотрим данный пример программы более подробно. Прежде всего, метод Area объявляется как virtual в классе TwoDShape и переопределяется в классах Triangle и Rectangle по объяснявшимся ранее причинам. В классе TwoDShape ме тод Area реализован в виде заполнителя, который сообщает о том, что пользователь данного метода должен переопределить его в производном классе.
Каждое переопре деление метода Area предоставляет конкретную его реализацию, соответствующую типу объекта, инкапсулируемого в производном классе. Так, если реализовать класс для эллипсов, то метод Area должен вычислять площадь эллипса. У программы из рассматриваемого здесь примера имеется еще одна примечатель ная особенность.
Обратите внимание на то, что в методе Main двумерные формы объявляются в виде массива объектов типа TwoDShape, но элементам этого массива присваиваются ссылки на объекты классов Triangle, Rectangle и TwoDShape. И это вполне допустимо, поскольку по ссылке на базовый класс можно обращаться к объ екту прризводного класса. Далее в программе происходит циклическое обращения к элементам данного массива для вывода сведений о каждом объекте. Несмотря на всю свою простоту, данный пример наглядно демонстрирует преимущества наследования и переопределения методов. Тип объекта, хранящийся в переменной ссылки на базо вый класс, определяется во время выполнения и соответственно обусловливает даль нейшие действия.
Так, если объект является производным от класса TwoDShape, то для получения его площади вызывается метод Area. Но интерфейс для выполнения этой операции остается тем же самым независимо от типа используемой двумерной формы.
Применение абстрактных классов Иногда требуется создать базовый класс, в котором определяется лишь самая об щая форма для всех его производных классов, а наполнение ее деталями предостав ляется каждому из этих классов. В таком классе определяется лишь характер методов, которые должны быть конкретно реализованы в производных классах, а не в самом ба зовом классе. Подобная ситуация возникает, например, в связи с невозможностью по лучить содержательную реализацию метода в базовом классе. Именно такая ситуация была продемонстрирована в варианте класса TwoDShape из предыдущего примера, где метод Area был просто определен как заполнитель. Такой метод не вычисляет и не выводит площадь двумерного объекта любого типа.
Создавая собственные библиотеки классов, вы можете сами убедиться в том, что у метода зачастую отсутствует содержательное определение в контексте его базового класса. Подобная ситуация разрешается двумя способами. Один из них, как показано в предыдущем примере, состоит в том, чтобы просто выдать предупреждающее со общение. Такой способ может пригодиться в определенных ситуациях, например при отладке, но в практике программирования он обычно не применяется. Ведь в базовом.
Определяет, является ли вызывающий объект таким же, как и объект, доступный по ссылке ob Определяет, является ли объект, доступный по ссылке o b jA, таким же, как и объект, доступный по ссылке obj в Выполняет завершающие действия перед “сборкой му сора'. В C# метод Finalize доступен посредством деструктора Возвращает хеш-код,связанный с вызывающим объектом Получает тип объекта во время выполнения программы Выполняет неполное копирование объекта, т.е. Копиру ются только члены, но не объекты, на которые ссылают ся эти члены Определяет, делаются ли ссылки objA и objB на один и тот же объект.
Public virtual string Возвращает строку, которая описывает объект ToString Метод GetHashCode возвращает хеш-код,связанный с вызывающим объектом. Этот хеш-кодможно затем использовать в любом алгоритме, где хеширование при меняется в качестве средства доступа к хранимым объектам. Следует, однако, иметь в виду, что стандартная реализация метода GetHashCode не пригодна на все случаи применения. Как упоминалось в главе 9, если перегружается оператор , то обычно приходит ся переопределять методы Equals (o b je c t) и GetHashCode , поскольку чаще всего требуется, чтобы метод Equals (o b ject) и оператор функционировали одинаково. Когда же переопределяется метод Equals ( o b je c t ), то следует переопределить и ме тод GetHashCode , чтобы оба метода оказались совместимыми.
Метод ToString возвращает символьную строку, содержащую описание того объекта, для которого он вызывается. Кроме того, метод ToString автоматически вызывается при выводе содержимого объекта с помощью метода WriteLine. Этот метод переопределяется во многих классах, что позволяет приспосабливать описание к конкретным типам объектов, создаваемых в этих классах. Ниже приведен пример применения данного метода. // Продемонстрировать применение метода ToString using System; class MyClass static int count = 0; int id.