Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 863591
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 15, 20262026-05-15T09:20:13+00:00 2026-05-15T09:20:13+00:00

This question is a follow-up to my last question with a reference to COM

  • 0

This question is a follow-up to my last question with a reference to COM Interop.

Let’s say I have the following 2 interfaces and implementing classes:

public interface ISkuItem 
{ 
    public string SKU { get; set; } 
} 

public interface ICartItem : ISkuItem 
{ 
    public int Quantity { get; set; } 
    public bool IsDiscountable { get; set; } 
} 

public class CartItem : ICartItem
{
    //implemented properties...
}

Or, in VB.NET:

Public Interface ISkuItem
    Property SKU() As String
End Interface

Public Interface ICartItem
    Inherits ISkuItem
    Property Quantity() As Integer
    Property IsDiscountable() As Boolean
End Interface

Public Class CartItem
    Implements ICartItem

    'Implemented Properties'
End Class   

Interfaces are important in COM interop for exposing properties and methods to IntelliSense in the VB6 IDE (per this article). However, because ICartItem is inherited from ISkuItem, SKU is not explicitly defined in ICartItem and thus is not visible in IntelliSense in VB6 and even throws a compiler error when trying to write to objCartItem.SKU.

I’ve tried using Shadows and Overloads on the SKU property in ISkuItem, but then the compiler wants me to explicitly implement SKU for both ISkuItem and ICartItem within the CartItem class. I don’t think that’s what I want.

Is there a way (in either VB.NET or C#) to explicitly declare the SKU property in ICartItem without having to declare SKU twice in the CartItem class?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-15T09:20:14+00:00Added an answer on May 15, 2026 at 9:20 am

    You could do as Matthew suggests and provide a new (Shadows) SKU member to ICartItem. But as I’m sure you realize, this pretty much renders your interface inheritance useless.

    It really seems like this interface inheritance model isn’t working out for you.

    Are you sure that having ICartItem inherit from ISkuItem is actually buying you anything?

    Rather than suffer a headache over it, I’d probably be inclined to just have ICartItem offer its own SKU property and not inherit from ISkuItem at all. Then any class implementing ICartItem could optionally also implement ISkuItem explicitly (just as many collection classes in .NET do, e.g. with ICollection<T> and ICollection); but either way it will have an SKU property.

    This isn’t the design choice I would make in general, mind you (I would go with what you have); but when it comes to COM interop, sometimes you just have to make sacrifices because you don’t want to bang your head against the wall forever.

    I’m not sure you’re going to get a very satisfying answer on this one. VB6 just flat-out doesn’t understand everything that .NET does, so you’re not going to be able to figure out a perfect 1:1 mapping of .NET features to COM equivalents.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

This is somewhat of a follow-up question to this question . Suppose I have
This question is a follow up to my previous question about getting the HTML
This question is a follow up on one of my other questions, Can I
This question is a follow-up from How to indicate that a method was unsuccessful
This question is a follow up to: Why can’t I call a method outside
This is a follow up question to This Question . I like (and understand)
This is a follow on to this question . I am trying to avoid
This is a follow up to this question , where I didn't get any
In follow up to this question , it appears that some numbers cannot be
As a follow up to this question: Developing a online exam application, how do

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.