Implementing a Property

    The same as methods, properties (“get”, “let”, and “set”) from an interface could be implemented by another class. In Visual Basic 6, just as a method, it has to add the keyword Implements and declare the corresponding property with the name <Interface>_<PropertyName> in the class.

    A difference between methods and properties is that the later could have just the “get”, “let” or “set” properties or a combination of them. In the implementing class the same kinds of properties must be implemented, which means that if in the interface the property implements the “get” and “let”, in the implementing class both properties must be applied as well.

    The upgrading process is very similar to the methods conversion procedure. An interface must be generated, along with the CoClass class with the exposed methods. Moreover, for Visual Basic .NET the property must keep the same name, and the Implements keyword is added to the end with the corresponding property to be implemented.

    For C# the changes imply renaming the property from <Interface>_<Property> to <Property>, and the Implements keyword is not needed.

    Remember, just as with methods, the signature must be the same as the one from the interface.

    Original VB6 code

    AnInterface.cls
    
    Property Get PhaseName() As String
        ' Code
    End Property
    
    Property Let PhaseName(ByVal v As String)
        ' Code
    End Property
    
    AClass.cls
    
    Implements AnInterface
    Property Get AnInterface_PhaseName() As String
        ' Code
    End Property
    
    Property Let AnInterface_PhaseName(ByVal v As String)
        ' Code
    End Property
    

    VBUC resulting VB.NET code

    AnInterface.cls
    
    Interface AnInterface
        Property PhaseName As String
    End Interface
    Friend Class AnInterface_CoClass
        Implements AnInterface
    Public Property PhaseName() As String Implements AnInterface.PhaseName
            Get
                ' Code
            End Get
            Set(ByVal Value As String)
                ' Code
            End Set
    End Property
    End Class
    
    AClass.cls
    
    Friend Class AClass
        Implements AnInterface
        Property AnInterface_PhaseName() As String Implements AnInterface.PhaseName
            Get
                ' Code
            End Get
            Set(ByVal Value As String)
                ' Code
            End Set
        End Property
    End Class
    

    VBUC resulting C#.NET code

    AnInterface.cls
        interface AnInterface
        {
            string PhaseName{ get; set; }
        } 
        internal class AnInterface_CoClass
        : AnInterface
        {
            public string PhaseName
            {
                get
                {
                    // Code
                    return String.Empty;
                }
                set
                {
                    // Code
                }
            }
        }
    AClass.cls
        internal class AClass
        : AnInterface
        {
                public string PhaseName
                {
                    get
                    {
                        // Code
                        return String.Empty;
                    }
                    set
                    {
                        // Code
                    }
            }
    }

    Download VBUC Free Trial
    Download VBUC Now

    It's time to eradicate VB6
    ROI of eradicating VB6

    8 Proven Tips for
    Planning a Successful Migration

    8 Tips for migration