Описание тега default-interface-member
Член интерфейса по умолчанию - это функция, представленная в C# 8, которая позволяет интерфейсу объявлять член с телом. Классы, реализующие интерфейс, не обязаны переопределять метод по умолчанию. Используйте этот тег для вопросов, касающихся элементов интерфейса C# 8 по умолчанию.
3
ответа
Реализации интерфейса по умолчанию. В чем сейчас глубокая значимая разница между абстрактным классом и интерфейсом?
Я знаю, что абстрактный класс - это особый класс, который не может быть создан. Абстрактный класс должен быть только подклассифицирован (унаследован от). Другими словами, он только позволяет другим классам наследовать от него, но не может быть созда…
01 дек '17 в 21:00
0
ответов
Относится ли реализация по умолчанию членов интерфейса в C# 8 к решению проблемы множественного наследования абстрактного класса?
Я читаю этот блог .NET Engineering Team и они представили новую функцию реализации по умолчанию для Interface, Я запутался в связи с его мотивом, кроме проблемы многоуровневого наследования abstract class, Кроме этого, я не могу понять какую-либо др…
31 янв '19 в 08:15
0
ответов
Нет ли способа вызвать метод интерфейса по умолчанию в реализующем классе?
Рассмотрим этот интерфейс и средство реализации класса interface I { string M() => "I.M()"; } class C: I { public string M()=>???.Replace("I","C"); } Вместо того ???как вызвать метод по умолчанию? я пыталсяbase.M(), но это не был фанат. И я то…
28 апр '20 в 00:16
0
ответов
Как правильно вызвать реализацию интерфейса по умолчанию?
"переопределение" интерфейса по умолчанию impl из AcceptChanges не вызывает интерфейс по умолчанию impl после преобразования его в тип интерфейса, содержащий реализацию интерфейса по умолчанию. Зачем? public interface IItemViewModel1 { void AcceptCh…
06 мар '20 в 21:16
1
ответ
Как я могу вызвать метод по умолчанию вместо конкретной реализации
Почему в C# 8 изменено поведение методов интерфейса по умолчанию? В прошлом следующий код (когда демонстрационные методы интерфейса по умолчанию не были выпущены): interface IDefaultInterfaceMethod { // By default, this method will be virtual, and t…
15 янв '20 в 12:09
2
ответа
Почему реализации членов интерфейса по умолчанию в C#8 сообщают об ошибке
Почему реализации членов интерфейса по умолчанию в C#8 сообщают об ошибке? public interface Logger { void Info(string message); void Error(string message); // C#8 Default implementations of interface void Warn(string message) { // "interface method …
26 сен '19 в 09:46
2
ответа
Полная асинхронность при использовании конвейера
Если у меня есть приложение, которое использует конвейер со многими этапами, которые нужно выполнить, используя foreach на всех этапах и звоните: CanExecute Execute Интерфейс такой: public interface IService { bool CanExecute(IContext subject); ICon…
05 ноя '19 в 19:15
8
ответов
Вызов метода по умолчанию интерфейса C# из реализации класса
C# 8 поддерживает реализации методов по умолчанию в интерфейсах. Моя идея заключалась в том, чтобы внедрить метод ведения журнала в такие классы: public interface ILoggable { void Log(string message) => DoSomethingWith(message); } public class My…
02 сен '19 в 22:22
1
ответ
В чем разница между интерфейсом с реализацией по умолчанию и абстрактным классом?
В C# 8.0 появилась новая языковая функция - реализации членов интерфейса по умолчанию. public interface IRobot { void Talk(string message) { Debug.WriteLine(message); } } Новые реализации интерфейса по умолчанию предоставляют элементы языка свойств.…
26 сен '19 в 14:46
1
ответ
Ожидается ли поведение этого общедоступного, но абстрактного метода интерфейса?
Недавно я обнаружил (благодаря неработающему ядру 2.2), что теперь это разрешено в C# 8. public interface ISimple { public string Simon { get; } } ISimple это интерфейс, Simon не имеет реализации, но publicключевое слово разрешено. Я это понимаюpubl…
09 окт '19 в 16:04
2
ответа
C#8.0: Защищенные свойства для интерфейсов с реализациями по умолчанию
Скажем, у меня есть следующие интерфейсы: public interface IReturnableAs { protected String ReturnAs { get; set; } } public interface IReturnableAsImage<T> { protected String ImageResolution { get; set; } public T ReturnAsImage(String imageRes…
15 сен '19 в 14:26
1
ответ
Наследование событий с реализацией интерфейса по умолчанию в C#8 / чертами
В настоящее время существует мало документации, связанной с ограничениями событий с новыми реализациями интерфейса C#8 по умолчанию (трейтами). Меня особенно смущает предложение спецификации.В примере не только указан недопустимый C# (для события "п…
11 ноя '19 в 09:31
0
ответов
Свойство по умолчанию внутри интерфейса C#
public interface ITest { public int Field1 { get => 0; set { } } } public interface IDynamicData { public int Field2 { get => 0; set { } } } public class Test : ITest, IDynamicData { public int Field3 { get; set; } } Я хочу получить доступ к п…
21 ноя '19 в 16:40
0
ответов
Базовый синтаксис / явные вызовы реализаций интерфейса по умолчанию в C# 8.0
Я возился с реализациями интерфейса по умолчанию. Решили, что вам нужно выполнить понижающее преобразование к типу интерфейса, чтобы использовать реализацию метода по умолчанию. Я также нашел кучу примечаний по другому синтаксису, я не могу найти, в…
26 сен '19 в 11:36
1
ответ
Как сохранить некоторые реализации методов интерфейса по умолчанию в классе реализации в C# 8.0?
Можно было бы подумать, что в C# 8.0 вы должны иметь возможность делать следующее (в соответствии с этим (1-й фрагмент)): public interface IRestApiClient : IRestClient { ... Task<T> PostPrivateAsync<T>(string action, OrderedDictionary<…
26 окт '19 в 17:27
3
ответа
Реализация по умолчанию в интерфейсе не видна компилятору?
Вот мой код внутри проекта С #, который нацелен на.NET Core 3.0 (поэтому я должен быть на С # 8.0) с Visual Studio 2019 (16.3.9) public interface IJsonAble { public string ToJson() => System.Text.Json.JsonSerializer.Serialize(this); } public clas…
20 ноя '19 в 12:26
1
ответ
C# 8 Реализация по умолчанию и инверсия зависимостей
В C#8 Microsoft представила реализацию по умолчанию для методов интерфейса. Это все еще довольно новая функция, и, похоже, об этом пишут многие обеспокоенные блоггеры. Мне интересно, может ли реализация по умолчанию быть полезным инструментом для ин…
26 ноя '19 в 10:35
2
ответа
В C# 8.0 есть способ раскрыть реализацию члена по умолчанию в классе?
В C# 8.0 интерфейсы могут иметь реализации по умолчанию для некоторых членов. Эти реализации являются явными, что означает, что они недоступны через экземпляр класса, и мы должны привести к типу интерфейса, чтобы вызвать их. Есть ли способ предостав…
03 дек '19 в 17:17
0
ответов
Что случилось с возможностью переопределить реализации интерфейса по умолчанию в C# 8, .Net Core 3?
Предложение C# 8 для методов интерфейса по умолчанию показывает следующий пример... using static System.Console; interface IA { void M() { WriteLine("IA.M"); } } interface IB : IA { override void IA.M() // The modifier 'override' is not valid for th…
02 мар '20 в 21:03
2
ответа
Не удается скомпилировать метод интерфейса C# по умолчанию
В C# 8.0 есть новая функция, которая позволяет добавлять реализацию по умолчанию к методу интерфейса. Либо я делаю что-то не так, либо эта функция работает не так, как рекламируется. (Я предполагаю, что это первое.) Я создал новое консольное приложе…
10 май '20 в 22:31