Уважаемые редакторы, Почему вы помечаете этот вопрос как основанный на мнении? У меня нет мнения, я просто задал основной вопрос.

У меня есть основная путаница с концепцией реализации интерфейса С# 8. Как вы знаете, интерфейс - это не более чем контракт. Почему нам нужна реализация по умолчанию? Это правильно концептуально? Почему контракт должен иметь реализацию?

2
Saeid Babaei 23 Дек 2019 в 17:09
2
 – 
Pavel Anikhouski
23 Дек 2019 в 17:09
Спасибо, Но я ищу концептуальную правильность не только технических требований.
 – 
Saeid Babaei
23 Дек 2019 в 17:15
1
Как ранее отмечал Эрик Липперт, цель C# — позволить работающим программистам создавать работающее программное обеспечение. Не быть «концептуально чистым», если это за счет удобства. (Извиняюсь перед г-ном Липпертом за перефразирование)
 – 
Damien_The_Unbeliever
23 Дек 2019 в 17:18
1
Вы можете добиться этого с помощью абстрактного класса, но тогда вы потеряете множественное наследство. поэтому, если вам нужно наследование двух абстрактных классов, вы можете сделать это.
 – 
divyang4481
23 Дек 2019 в 18:56
1
Вы запрашиваете мнения, основанные на вашей интерпретации интерфейсов. Которые не просто контракты. Поэтому вопрос был закрыт. В любом случае, вопрос уже задавался раньше с разными ответами каждый раз, потому что is it correct определенно спрашивает мнение. Описание тега объясняет, почему были добавлены DIM и почему они на самом деле необходимы на одном из самых популярных рынков .NET Core — Android.
 – 
Panagiotis Kanavos
24 Дек 2019 в 14:26

1 ответ

Предположим, мы унаследовали от интерфейса в разных местах, если хотим добавить новый член и не хотим затрагивать этим изменением какой-либо существующий класс. Вот как мы определяем интерфейс с текущей версией C#, и мы застряли. В C# 8.0 мы можем решить проблему, предоставив реализацию метода.

Реализации по умолчанию — это мощная функция языка, появившаяся в C# 8.0. Хотя некоторым разработчикам это может показаться опасным, другим это точно понравится. Те, кто пишет библиотеки и компоненты для публичного использования, могут найти реализации по умолчанию особенно полезными, поскольку они позволяют нам избежать критических изменений в интерфейсах.

Документ

0
Reza Jenabi 23 Дек 2019 в 17:22
2
Это связано с технической стороной. не о философии.
 – 
Saeid Babaei
23 Дек 2019 в 17:17