Как правильно вызвать реализацию интерфейса по умолчанию?
"переопределение" интерфейса по умолчанию impl из AcceptChanges не вызывает интерфейс по умолчанию impl после преобразования его в тип интерфейса, содержащий реализацию интерфейса по умолчанию. Зачем?
public interface IItemViewModel1
{
void AcceptChanges() => Debug.Print("In interface");
}
public class ItemViewModelBase1<TModel> : IItemViewModel1
where TModel : new()
{
private TModel _data;
public void AcceptChanges()
{
Debug.Print("In ViewModel");
_data ??= new TModel();
((IItemViewModel1)this).AcceptChanges(); // calling itself rather than default interface implementation
}
}
public static class TestClass
{
public static void Test()
{
IItemViewModel1 x = new ItemViewModelBase1<int>();
x.AcceptChanges();
}
}