Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

How do you declare a "MustOverride" Constant?

Posted on 2010-11-15
6
Medium Priority
?
967 Views
Last Modified: 2012-05-10
Okay, I'm painfully new to TRUE OOP programming, and am working with inheritance.  I have a constant that I want each child class to be forced to set, so that in the base class a common method can be run that uses the value as set by its children.

I've tried the following:

Protected MustOverride Const Foo As Long

But needless to say, VB.Net no likey.  

I've come to the conclusion that I can create a regular variable in the base class, then make a required sub that "sets" the value of the variable, but this definitely feels like a hack.

Suggestions?
0
Comment
Question by:Javin007
  • 3
  • 3
6 Comments
 
LVL 4

Author Comment

by:Javin007
ID: 34140955
Update:  I've now found that I can make a "MustInherit" ReadOnly Property, but that still also feels hackish.
0
 
LVL 75

Accepted Solution

by:
käµfm³d   👽 earned 2000 total points
ID: 34140963
You can declare a MustOverride ReadOnly property on your base class (and define the class as MustInherit). Then, in your child class, implement the property. Here is an example:
Public MustInherit Class BaseClass
    Public MustOverride ReadOnly Property Foo() As Long
End Class



Public Class Child1
    Inherits BaseClass

    Private Const _foo As Long = 10

    Public Overrides ReadOnly Property Foo() As Long
        Get
            Return _foo
        End Get
    End Property
End Class

Open in new window

0
 
LVL 4

Author Comment

by:Javin007
ID: 34145821
Bummer.  This is considered the "right" way to do it?
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 75

Assisted Solution

by:käµfm³d 👽
käµfm³d   👽 earned 2000 total points
ID: 34147162
AFIK, yes, because MustOverride only applies to properties and procedures. You are still accomplishing the same goal provided you keep the ReadOnly keyword in there. Of course, it wouldn't make sense to have a "setter" point to a const private member anyways!
0
 
LVL 75

Assisted Solution

by:käµfm³d 👽
käµfm³d   👽 earned 2000 total points
ID: 34147172
P.S.

This isn't necessarily a restriction of OOP--more likely it is a restriction of VB.NET.
0
 
LVL 4

Author Closing Comment

by:Javin007
ID: 34148705
Thanks!
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

It’s quite interesting for me as I worked with Excel using vb.net for some time. Here are some topics which I know want to share with others whom this might help. First of all if you are working with Excel then you need to Download the Following …
The ECB site provides FX rates for major currencies since its inception in 1999 in the form of an XML feed. The files have the following format (reducted for brevity) (CODE) There are three files available HERE (http://www.ecb.europa.eu/stats/exch…
This video shows how to quickly and easily deploy an email signature for all users in Office 365 and prevent it from being added to replies and forwards. (the resulting signature is applied on the server level in Exchange Online) The email signat…
How can you see what you are working on when you want to see it while you to save a copy? Add a "Save As" icon to the Quick Access Toolbar, or QAT. That way, when you save a copy of a query, form, report, or other object you are modifying, you…
Suggested Courses
Course of the Month11 days, 14 hours left to enroll

564 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question