Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Заблокирован
1

Все таки интерфейс или как?

05.03.2016, 13:29. Показов 724. Ответов 8
Метки нет (Все метки)

у меня такой вопрос как получается что при использовании ADOX создается именно объект интерфейса Catalog? объекты интерфейсов же нельзя создавать! а там именно пишется new ADOX.Catalog() хотя Catalog описан как интерфейс и это работает!
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.03.2016, 13:29
Ответы с готовыми решениями:

правильно ли я написал, или все таки реализация части метода
правильно ли я написал, или все таки реализация части метода activate должна быть в static main?...

Как соединить интерфейс с драйвером(Что же все таки в том опенсоурснике)
http://www.acc.umu.se/~bosse/ FileDisk Release 21 (2015-12-16) filedisk-21.zip Вот линка на...

Как лучше сделать? LINQ или всё-таки foreach
Добрый день! Как лучше организовать передачу списка List<ObjectInfo> в другую форму (как передать в...

Как написать функцию, возвращающую произведение (или все-таки сумму?) элементов массива?
Объясните правильно ли я пользуюсь функцией или как это ваще делать? Function sum(t As Variant)...

8
155 / 143 / 92
Регистрация: 30.03.2011
Сообщений: 569
05.03.2016, 15:46 2
Об интерфейсах. В объектно-ориентированном программировании иногда требуется определить, что класс должен делать, а не как он будет это делать. Похожий подход у абстрактного метода. Абстрактный метод определяет сигнатуру для метода,абстрактный метод задает интерфейс для метода, но не способ его реализации. Несмотря
на всю полезность абстрактных классов и методов, эту идею развивают интерфейсы.
В С# предусмотрена возможность полностью отделить интерфейс класса от его реализации с помощью ключевого слова interface.
Интерфейсы синтаксически подобны абстрактным классам. Однако в интерфейсе ни один метод не может включать тело, т.е. интерфейс в принципе не предусматривает какой бы то ни было реализации. Он определяет, что должно быть сделано, но не уточняет, как. Коль скоро интерфейс определен, его может реализовать любое количество классов. При этом один класс может реализовать любое число интерфейсов.

Для реализации интерфейса класс должен обеспечить тела (способы реализации) методов, описанных в интерфейсе. Каждый класс может определить собственную реализацию. Таким образом, два класса могут реализовать один и тот же интерфейс различными способами, но все классы поддерживают одинаковый набор методов. Следо-
вательно, код, "осведомленный" о наличии интерфейса, может использовать объекты любого класса, поскольку интерфейс для всех объектов одинаков. Предоставляя программистам возможность применения такого средства программирования, как интерфейс, С# позволяет в полной мере использовать аспект полиморфизма, выражаемый как "один интерфейс — много методов".
Если класс реализует интерфейс, он должен это сделать в полном объеме, т.е. реализация интерфейса не может быть выполнена частично.
Методы, которые реализуют интерфейс, должны быть объявлены открытыми. Дело в том, что методы внутри интерфейса неявно объявляются открытыми, поэтому их реализации также должны быть открытыми. Кроме того, сигнатура типа в реализации метода должна в точности совпадать с сигнатурой типа, заданной в определении интерфейса.
Не удивляйтесь, узнав, что можно объявить ссылочную переменную интерфейсного типа. Другими словами, можно создать переменную ссылку на интерфейс. Такая переменная может ссылаться на любой объект, который реализует ее интерфейс. При вызове метода для объекта посредством интерфейсной ссылки будет выполнена та версия указанного метода, которая реализована этим объектом. Этот процесс аналогичен использованию ссылки на базовый класс для доступа к объекту производного класса
0
Заблокирован
05.03.2016, 16:10  [ТС] 3
MVK, и че это? я знаю что переменной ссылочного типа можно присвоить объект реализующий этот интерфейс, я все таки не совсем уж новичок в программировании ага... вопрос был вообще о другом, читай внимательнее
0
Заблокирован
05.03.2016, 16:19  [ТС] 4
там просто в этом ADOX-е какая то путаница в именах, там еще есть интерфейс _Catalog который как я понял каким то непостижимым образом ухитряется подставляться заместо интерфейса Catalog, но все таки создание объекта интерфейса это не объясняет...
0
Миниатюры
Все таки интерфейс или как?   Все таки интерфейс или как?  
Заблокирован
05.03.2016, 16:25  [ТС] 5
а созданный new Catalog() объект все равно имеет тип Catalog... хотя функция Create уже судя по подсказкам идет от _Catalog... запутался блин... впрочем эти подсказки иногда барахлят и выдают чепуху как сейчас, у меня уже что то было такое
0
Миниатюры
Все таки интерфейс или как?  
155 / 143 / 92
Регистрация: 30.03.2011
Сообщений: 569
05.03.2016, 17:30 6
Переменной "c" можно присвоить любой тип, реализующий интерфейс Catalog !!!!!!!!!!

Добавлено через 47 секунд
В этом огромное достоинство интерфейса, наряду с другими
0
Заблокирован
05.03.2016, 17:39  [ТС] 7
Цитата Сообщение от MVK Посмотреть сообщение
Переменной "c" можно присвоить любой тип, реализующий интерфейс Catalog !!!!!!!!!!
ты глупый или притворяешься? вопрос был вообще о другом, не отвечай пожалуйста больше если не можешь прочитать внимательно вопрос, тебя не в ту степь несет
0
141 / 117 / 26
Регистрация: 07.12.2014
Сообщений: 371
05.03.2016, 20:37 8
del

Добавлено через 6 минут
Ты, товарищ, не новичок. Думаю из примера всё поймёшь

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[ComImport, GuidAttribute("00012345-0000-0000-0000-000000000011")]
    [System.Runtime.InteropServices.CoClass(typeof(Real))]
    public interface Catalog {
       
    }
    
    public class Real { }
    
    class Program
    {
        static void Main(string[] args)
        {
            var c = new Catalog();
        }
    }
0
Заблокирован
05.03.2016, 20:56  [ТС] 9
Цитата Сообщение от Vigelforts Посмотреть сообщение
C#
1
[System.Runtime.InteropServices.CoClass(typeof(Real))]
вот эта строка не понятна, понятно только что атрибут, но что он делает я хз...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2016, 20:56

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Так куда все таки внедрять EF DbContex (или репозитории)? в контроллеры или в модели представления?
Всем привет! Прочитал кучу информации о подходе MVС в разработке пользовательских приложений и так...

win7 или все таки XP
купил вот нетбук acer aspire one 522 AMD dual core 1ghz 2 gb ddr 3 320 gb hdd стоит 7-ка...

Оставить как есть или всё-таки "апнуть"
Имеется такая конфигурация :мат. Asus P5Q SE, проц....

Видеокарта или все таки мост?
Здравствуйте. Излагаю суть проблемы. При включении компьютера биос выдает звуковой сигнал, который...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.