Реализация методов интерфейса должна быть публичной, вот что означает реализация интерфейса.Тот факт, что класс является внутренним, означает только то, что класс известен только проекту, в котором он объявлен, но это не мешает этому проекту создавать экземпляр этого класса и передавать его другим проектам как «объект» или как открытый интерфейс.,Между тем вы всегда можете объявить сам интерфейс как внутренний.
internal interface IDataHelper<T>
{
int Insert(T aType);
}
internal class ProductDataHelper : IDataHelper<Product>
{
public int Insert(Product aType)
{
// ...
}
}
nb Вопреки тому, что предлагает комментарий в вашем вопросе, явные реализации методов интерфейса также public
, хотяключевое слово public
отсутствует.