0 / 0 / 0
Регистрация: 27.08.2014
Сообщений: 5

Явное приведение типов

03.11.2014, 19:59. Показов 895. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время.
Помогите с вопросом явного приведения.
К объектам классам new Treygolnik(), new Pyatiygolnik(), new ChetirexYgolnik().... привязан интерфейс IPoints.cs в котором находиться один метод CalculatePoints().
В методе Risuem я прохожу по каждому объекту figura, с проверкой присутствия интерфейса IPoints.
Вопрос в том, почему я должен использовать явное приведение ((IPoints)figura).CalculatePoints(), а не так - figura.CalculatePoints().
Возможно элементарно, но не могу понять.
Спасибо.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
static void Main(string[] args)
        {
          Figura[] figuras = { new Treygolnik(), new Pyatiygolnik(), new Oval(), new Krug(), new ChetirexYgolnik()};
          Risuem(figuras);
          Console.ReadKey();
        }
 
static void Risuem(Figura[] figuras)
        {
            foreach(Figura figura in figuras){
                figura.Draw();
                if (figura is IPoints)
                {
                    Console.WriteLine("В это фигуре {0} вершин", ((IPoints)figura).CalculatePoints());
                }
            }
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.11.2014, 19:59
Ответы с готовыми решениями:

Явное приведение типов
static void Main(string args) { int x = 2147483647; Console.WriteLine((double)x*3); ...

Не компилируется явное приведение типов
Ребят, всем привет. Такой вопрос. Почему-то в Visual Studio 2008 не компилируется явное приведение типов в C#. Код элементарный....

Явное приведение типов в задачах с наследованием
имеется следующий код: fgr = new Trng(); ((Trng)fgr).LengthA = getParameter("Длина a"); ((Trng)fgr).LengthB =...

2
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
03.11.2014, 20:03
Цитата Сообщение от simos Посмотреть сообщение
почему я должен использовать явное приведение
Потому что ваш класс (базовый, я так понимаю) Figura этот интерфейс не реализует (насколько я понял, при отсутствии его кода). У вас массив объектов типа Figura, и естественно что необходимый вам метод без явного приведения типов вызвать не получится.
0
0 / 0 / 0
Регистрация: 27.08.2014
Сообщений: 5
03.11.2014, 20:21  [ТС]
Спасибо, немного понял.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.11.2014, 20:21
Помогаю со студенческими работами здесь

Существует явное преобразование (возможно, пропущено приведение типов)
Добрый день. Помогите, пожалуйста, исправить ошибку. Не пойму как сделать по другому. Пишет ошибка: Не удается неявно преобразовать тип...

Явное и не явное преобразование типов - разобраться в понятии
Это как? "явно приобразовать оъекты в объекты" а что можно не явно?

Явное приведение
Сверх-глупый вопрос , который меня все время мучает Вот значит пример с msdn Giraffe g = new Giraffe(); Animal a = g; ...

Явное или неявное приведение типа
Здравствуйте. Смотрю код других разработчиков и замечаю, что часто они явно приводят типы там, где это можно спокойно опустить, т.к....

Явное преобразование типов
Здравствуйте. Подскажите как происходит явное преобразование типов? Например, int i=258; byte b=(byte) i; //результат b=2; uint...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru