Я думаю, что другие ответы на самом деле немного неуместны.
В приведенном вами примере один интерфейс наследует от другого.Это просто означает, что он предлагает те же элементы, что и его база, а также некоторые дополнительные элементы.
Это не два независимых интерфейса, которые предоставляют элементы с одинаковым именем.ICartItem.SKU
- это то же самое, что и ISkuItem.SKU
.То, что ICartItem
наследуется от ISkuItem
, просто означает, что ISkuItem
как интерфейс представляет собой подмножество функций, предлагаемых ICartItem
.
Рассмотрим этот код:
class CartItem : ICartItem
{
public int Quantity { get; set; }
public bool IsDiscountable { get; set; }
string ISkuItem.SKU
{
get { return "ISkuItem"; }
set { throw new NotSupportedException(); }
}
string ICartItem.SKU
{
get { return "ICartItem"; }
set { throw new NotSupportedException(); }
}
}
Этот класс не будет компилироваться .Вы не можете определить ICartItem.SKU
явно в этом случае, потому что ICartItem.SKU
это просто ISkuItem.SKU
.Нет никакого «другого» * 1027 * свойства для определения.
Итак, чтобы ответить на ваши вопросы напрямую:
Есть ли какая-либо важность для возможности указать тот или иной интерфейс для реализациисвойства в VB.NET?
Когда они являются отдельными, не связанными интерфейсами : да .
Как указали другие, вы можете предоставить различныереализации для членов различных интерфейсов, имеющих общее имя.
Но когда один интерфейс наследует от другого : нет .
Это не имеет значения, потому что ониэто то же самое.
Каково влияние указания одного интерфейса на другой при реализации свойств?
Опять же, если они не связаны между собой, он имеетэффект уже обсуждался другими: предоставление различных реализаций для двух интерфейсов.Но , если одно происходит от другого, это не имеет никакого эффекта .