End Class When I am writing code, and i want to use thesenew properties or fields, the intellisense shows me the new properties and fields mixed with those inherited. Is there a way to show them all grouped togheter separated from those inherited ( a part giving them a common prefix in the name)?
Public Class airplane Private var_num_seats As Integer Private var_num_engines As Integer
[code]....
Obviously, I don't wish that the class Glider has the method "start_engines" neither the property "num_engines". Otherwise, other child classes may have. How can I supress these property and method in child class, not just ignoring (if I can)?
I'm writing a set of unit tests for a large, complex class called ImageEditor from a piece of legacy code, where image processing and GUI functionality isn't strictly divided. One of the methods in the class, BaseImageChanged, seems to be concerned entirely with how images get displayed and should be disabled in my unit tests to avoid unnecessary complexity. The test project is in C#, and the original code is in VB; my idea was to create a Decorator for the class in C# and then hide the method behind an empty one that does nothing. However, when I try running the unit test, the VB code keeps referencing the old BaseImageChanged method as though the replacement didn't exist. Here's what I'm doing:
I'm currently refactoring an old Visual Basic DLL (VB.Net), which stores all of its data in one module called Globaldefinitions as public fields. There are about 200 fields, referenced thousands of times all around the code:
Public Module Globaldefinitons Public a As Short ... Public zz10 As Double
[Code]...
I need to change the module into a class with non-shared fields. This means, each and every of these thousands of references needs to reference the instance of that class:
globalDefinitionsInstance.a = 5
How do I go about this efficiently?
Regular expressions operating on the source fall flat. Refactoring tools like Re-Sharper or CodeRush don't seem to offer this functionality. Visual Studio 2010 cannot do it automatically either.
Class Foo ReadOnly name As String Public Sub New(name As String, dependentUpon As Foo) Me.name = name
[code]....
The output of New Bar() is:
Dependent created. Dependent upon nothing. Independent created. Dependent upon nothing.
It seems fields are initialized in the same order as they appear in the source code, which (a) leads to an unexpected result, and (b) seems a little puzzling, given that one is normally not permitted to read from uninitialized variables in .NET, yet that seems to be working fine above.I would've expected VB.NET to be smart enough to initialize referenced fields first, and only then those that reference it; i.e. I'd have liked to see this output instead:
Independent created. Dependent upon nothing. Dependent created. Dependent upon Independent.
how to get VB.NET to behave like that instead, without simply having to swap the declaration order of dependent and independent inside class Bar?
I use to set WithEvents variables to Nothing in Destuctor, because this will "Remove" all the Handlers associated with Handles keyword. Will this have the same effect for derivated classes?
I have a base class where amongst other code I have declared 2 properties. In my derived class, I get data from the DB and assign the results to the base class properties. This is so when I go back to the base class code, I can access the property values. It allows me to set the values in the derived class but once I go back to the Base class, the values don't exist.
I have a function that 2 derived classes use, but the third doesn't, would it make sense to just leave it in the base class, even though one of the 3 derived classes doesn't use it?The only way I could think of disallowing the third class is to basically create an intermediate class that is derived of the base, then the 2 that use the common function are derived off the second class.
Is it possible to prevent the 3rd class from using the function, while letting the two that are supposed to use it, use it?Does that just seem to go overboard, I mean as long as I don't "try" to call the function from the 3rd class, it shouldn't be a problem, I just was interested if there was a way to prevent it all together without a lot of hassle.
Trying to implement some sort of commit/rollback functionality in my base objects. I have it working with some help from google. However, I have a question My Base Class has a BeginEdit as shown below -
[Code]...
Now, what I'm confused about is if I create another class, Class1, that inherits the base class. I add some properties such as Name, Age, Location, etc. to Class1.When I do Class1.BeginEdit, wouldn't "Me.memberwiseclone" make a copy of Class1, then CType try to cast it from Class1 to the BaseObject class? How does that work if Class1 has additional properties like the Name, Age..blah blah? Where do those gets stored in the Base class? I'm having a hard time wrapping my head around the concept...
I have a base class called PageBase and then a derived class TestPage that inherits from PageBase. In PageBase I have overridden the OnInit() and when it is called and I inspect the value of 'Me', it is of the type of the derived class and not the base class. My question is how does inheritance really work? For instance, when instantiating TestPage does an instance of PageBase get created too?
I would like to inherit from the Data.DataColumn in order to produce a DataTextColumn. That means that in the derived class, I dont want to see the non-applicable AutoIncrement property and the like - all I want to see are properties that apply to string types.[code]...
I have an interface (called IPersistentBusinessObject) with a required function that looks like this:
Function GetFields(ByVal fromDatabase As clsODBCDatabase) As enumSuccessFailure
In a class, I try to satify the requirement with the following:
Public Function GetFields(ByVal fromDatabase As clsDatabase) As enumSuccessFailure Implements IPersistentBusinessObject.GetFields
In this example, clsDatabase inherits from clsODBCDatabase. So I'd expect this to work since clsDatabase does everything clsODBCDatabase does and more. However, it does not work. The compiler complains that I haven't properly satisifed the interface requirements for GetFields. Can anyone tell me why this does not work?In slightly different but related example, I have an interface that requires a function called 'AddItem' as in:
Sub AddItem(ByVal objObject As IPersistentBusinessObject)
In my 'building' class, I attempt to satisfy this requirement using:
Public Sub AddItem(ByVal building As clsBuilding) Implements IPersistentBusinessCollection.AddItem
In this example, clsBuilding implements the interface IPersistentBusinessObject. So I'd expect this to work since clsBuilding satisfies the interface contract. However, it does not work. The compiler complains that I haven't properly satisifed the interface requirements for AddItem. why this does not work?
I'm struggling here.. I know I can disable the warning manually. However I'm not sure if this would be the right way to go about this.
Here's my interface..vbnet Public Interface IPopulatingClassBase Property Identity() As Int64 ReadOnly Property Dirty() As Boolean Sub Populate_Class(ByVal RecordID As Int64) Sub Save_Class() Sub Reset_Class()End Interface
[Code]...
PS In my example think of it as classes that populate with data from a database. The parent class would be an organization, and the derived class a location. Both populate and have similar functionality. The only difference is locations are an entity of an organization(the data record for a location constraints it to an organization) upon loading location data I also populate the organization class. This is a real example of what my project does.. so having said I just want to know how I can get around this warning, and if not would it have any consequences if I left it as-is.
I am trying to add shared members in derived classes and use that values in base classes...
I have base
class DBLayer public shared function GetDetail(byval UIN as integer) dim StrSql = string.format("select * from {0} where uin = {1}", tablename, uin) end function end class
[Code]..
currently there is error using the tablename variable of derived class in base class but i want to use it i dun know other techniques if other solutions are better then u can post it or u can say how can i make it work? confused...
I have a Base Class, called primitive Graphics. derived from this class are several different types of graphics, squares, rectangles, lines, etc. I am storing those graphics in an object that inherits collectionbase. This causes a problem because I cannot access any of the members in the derived class when they are added to the collection. Here is the default property for my primitivecollection class
[Code]...
My current workaround is to just put all of the public members in the base class, however this is starting to look ugly as I add more derived classes that need members available to the derived class only
I was working on a custom button, in which I had to capture the event of the button, and depending on the certain conditions, either I'll block the event or pass it on the form containing my custom button.[code]Now, I do not have any idea how to block the event and not allow it to pass if the users opts for "No" in the given example.
I am trying to minimize my code writing. I have DBLayer base class that selects, inserts, updates and deletes records from database. I need only fieldlist and table name from each derived classes to perform the actions. I have defined static tablename, fieldnames in derived class. Currently I am defining next static functions in derived class for GeneralSelect [which selects all records], GeneralInsert[Which inserts a records], GeneralUpdate[Which updates records as per given id] and GeneralDelete[Which deletes a record of the given id]. The parameter and all functioning are same just the differece is the table name and fieldnames.
One DBLayer Class that performs database actions Class DBLayer Public shared function Query(byval SQL as string) as dataTable
[code]....
... same goes for all other table objects... If I have 20 database tables i have to write getdata method in all 20 class changing only the tablename so i would like to get ride of it. So in order to get ride of it what do i need to do?
i've finally got round to learning about classes and inheritance, but i'm not sure how to proceed. i have a base class Employee, which is inherited by 2 derived classes. how do i use the same Employee class in both derived classes? obviously if i write a sub new for both of them + declare a new Employee class, they won't be using the same class. heres my Employee class:
How can I access (read, write, create, delete) user-defined fields for single contacts in Outlook directly via the Exchange Web Service? I need to create/name a field and set a value (it should be viewable in the Outlook contact > "All Fields")I've found some code to set extended properties - it worked, so I could set and also read some values. >> but its not listed in "All Fields" of an contact.I'm using Exchange 2007 and Outlook 2007 - but it should also work with other Versions (Exchange 2003, 2007 and Outlook 2003)
I am just curious, if there is some way to attach handler to my derived classes base event, if I know EventInfo and I have Delegate to handler function. I have tried MyEvent.AddHandler(CType(Me, BaseClassType), MyDelegate) already, but no positive result at all. Consider being in need of attaching handler to custom event at runtime, while derived class possibly shadows this event.
Background:I have a base class and several inherited derived classes. The derived classes don't always need to have the same properties. If any properties are shared among the derived classes, those properties would live at the base class level ('Contents', for example).Similarly, GoodDocument below has 'GoodThings' but would not want/need to have 'BadThings'.I want to treat instances of both 'GoodDocument' and 'BadDocument' as type 'Document'
public mustinherit class Document public property Contents as string public sub new()...
I do have a customized treeView which inherits from treeview and uses customized treenodes which inherit from treenode. It works, but each inherited method of the treeview using a treenode as a parameter forces me to do an explizit cast from treenode to my customized treenode to access the additional functionalitiy of my treenode class.
Is there a general way to avoid explizit casting all day long? E.g. telling my customized treeview that all it's properties, mehthods, etc. from now on are working with my customized treenodes instead the general treenode as default?
Turning off option strict is not an option because I want to keep this. Overriding each method, etc. is to cumbersome.
When i use my UserControl in a project my Mouse Enter & Leave events aren't firing, i assume i fix this with a raiseevents in my usercontrol. However when i try to do this it says something about "cannot raise base event from derived class".
I'm new to VB 2008 after having spent a long time with VB6, so I apologize if this is a stupid question. But I'd really like to have this straightened out.
Let's say I have a pretty large structure that has lots of properties.
Code:
Now say that I want an internal database with about 10 instances of this structure total, describing, say, 10 different products that a store sells. When these values are loaded from a database, they remain totally static. (However, they can be different each time a program loads)
Now say that I have a class. Each instance of this class is a type of that BaseProduct structure. Meaning, each instance of the class pertains to one of the 10 types of products that the store sells. However, this class has additional properties that pertain specifically to each instance, which are not static.
Code:
Now, the problem here is... If I have 200 different transactions, each one contains an instance of BaseProduct. BaseProduct is HUGE, and is largely redundant (only 10 types possible), so I think it's a little silly to include a whole copy of it with EVERY transaction. However, the Transaction class really needs information regarding the base product it pertains to. Is there a way to, instead of declaring a New BaseProduct in the Transaction class, to simply make one of the properties of the Transaction class a pointer to a BaseProduct variable?
In VB6, I would accomplish this by making a BaseProduct(10) array, and then giving each Transaction an ID number referring to an entry in that array. But in VB 2008, using class structure, this is impossible. I can't define the BaseProduct(10) array outside of a class in a namespace, and if I define it in the actual application's form, then the class loses modularity since it relies on the application that's using it.