Если Table реализует IInternalTable неявно, а IInternalTable является внутренним, то эти методы будут доступны только для внутреннего использования (поскольку только внутренний код сможет использовать IInternalTable:
public interface ITable
{
string Name { get; }
}
internal interface IInternalTable
{
string Name { get; set; }
}
public class Table : ITable, IInternalTable
{
public string Name { get; set; }
string ITable.Name { get { return Name; } }
}
public class Database
{
private List<Table> tables;
public List<Table> Tables
{
get { return this.tables; }
}
}
(Также теперь отображается тип таблицы, чтобы избежать проблем с отсутствием ковариации ..., что также может быть решено с помощью Database.Tables, возвращающей копию и имеющей другое свойство only only.)