ICloneable - Make A Deep Copy By Adding A Clone Property To Class?
Feb 6, 2012I am trying to make a deep copy by adding a clone property to my class.
[Code]...
I am trying to make a deep copy by adding a clone property to my class.
[Code]...
I have an object (a third component gridview) which is serializable, and I need a deep clone of this object. I have the following code which throws the exception."The type System.Windows.Forms.Control in assembly System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKey Token=b77a5c5 61934e089 is not serializable".So the gridview's base class is System.Windows.Forms.Control, which is not serializable. How can I get a deep clone from the gridview? [code]
View 5 RepliesI have created a form with a tab control that I want to be able to make a copy of in such a way that all the child controls and their data are copied as well. I have tried this:
Dim NewPage as TabPage = tcViews.TabPages.Item(0)
tcViews.TabPages.Add(NewPage)
I end up with a reference to the first page. That is, if I change something in the old page, it changes in the new one as well. I believe this is because VB.NET treats assignments of classes as references, rather than values. Hence only the memory address of the original is copied, so essentially both refer to the same tab page in memory. I also tried serialization and deserialization.
The TabPage is apparently not serializable. And I heard about MemberwiseClone, but it isn't accessible, according to Visual Studio. There doesn't appear to be a Clone method available either. How do I make a new tab page that is totally independent of the original, but that has copies of the original page's controls and their property data, which can then be edited independently of the originals?
I found that if using ArrayList, all clone/CopyTo/Add command are shadow copy, not separate copy. How can I do such that after an ArrayList A is "copied" to ArrayList B, change in ArrayList A will not reflect to ArrayList B?
View 1 RepliesFollowing up on my question yesterday to deepcopy an object with events in C# and attach the events of the original object to the Cloned copy is pretty easy, you just set the Event declaration in the Copy = the value in the original. Deep Clone when events are attached. How do you do this in VB.Net? (Using .Net 2). Maybe there was something with reflection where you can examine what events are bound and somehow transfer those to the new object.
View 1 RepliesAs I understand it a shallow copy is like a CLONE copy of an object where the values for each property are independent of one another whereas a DEEP copy is a copy that uses the same memory locations and therefore if you change a value in one it is also shown in the second item ( By Reference to the same memory locations ).So my main question is, when dealing with CLASSEs, STRUCTUREs etcetera containing REFERENCE types.is there anyway to quickly create a CLONE or shallow copy of an OBJECT or not ? The only way I can think of is to put the item into a one dimensional array and use the CLONE method for an array. [code]
View 9 RepliesIs there any way possible to deep copy a Control? Just want to know if its possible
View 8 RepliesI'm looking for a tutorial on how to Adding a list(of Class) or Collection as another Class's Property.What I am after is something like the Columns Collection for the DatagridView control.I would like to add Items in the graphics screen. Where the item list is displayed in the left panel and the selected Item properties are displayed in the right panel.
View 4 RepliesIf I have a generic.list(of ClassA), is there a simple way to create a deep copy of this list that will not affect the original copy? It seems to work if I have a generic list of Structures, but for some reason the copy constructor for lists of classes only copies pointers to the elements (or maybe a pointer to the whole list?). I would move to structures if it were not for the fact that I can't find a way to edit the members in the structs in the list. eg:list(0).a = 5 'Does not workIs there some way to get around this without declaring an instance of that structure, like this:dim str as StructA = list(0)str.a = 5I'd
View 2 RepliesIf I instantiate an object within a function in VB.NET and return it, does it return it be reference or by value. IE - should I be worried about performance if I write something like this:
Public Function ret_obj_func() As big_object
Dim ret_obj As New big_obj(<lots of stuff>)
Return ret_obj
End Function
If I call this function from somewhere else, will it instantiate the object in the ret_obj and then create a deep copy to pass back a copy to the caller, Or will it just pass back a reference?
I have a very simple class that holds a few public properties - ID, Text, Colour, etc. and a Boolean called 'SelectedItem'. Just like the Checked property on RadioButtons, only one item can have its SelectedItem property set to True within a particular group. Note: there will be several separate groups (lists), each allowed to have only one item with SelectedItem = True.
My first thought was that I would probably just have to handle everything outside of the class, setting SelectedItem to False for every other item in a particular list when another item was selected. But that seems rather inelegant to me. So I've been trying to think of how this might be done within the class. For example: could I perhaps have a private string property called say "GroupName" - set in the New sub when adding a new instance of the class - and then use a private shared method to set every item's SelectedItem property to False, provided the item has the same GroupName as the newly selected item? I would have a go at doing this but I have no idea how to enumerate every instance of a class from within that class, or whether that's even possible. Is it? Or is there another (better) way to achieve my goal? Here is a cut-down version of what I've got so far:
Public Class ResourceItem
Public ID As Integer
Public Text As String[code]....
As can be seen: instead of instantiating a new ResourceItem and passing that as an argument to the manager's Add procedure, I'm simply passing the details of the new item and the procedure is creating the item from those. I don't know whether this is a good or bad idea - please advise - but I've done it because I couldn't figure out how to make the SelectedItem property only writeable by the manager, so I wanted to avoid having directly accessible objects that could have their SelectedItem property set to True without it deselecting all the other items in the same group. Of course that still leaves the possibility of setting a variable to one of the manager's list items and setting it from there, so I would still like to know how I could prevent that, if possible.
UPDATE: I didn't use the code above in the end, deciding instead to go with Cyborgx37's solution - which seems to work perfectly well for me despite the warnings about best practice. I also realised I would need to use the same class in another scenario where multiple items could be selected, so it was easy to add a Boolean property to the manager to enable that.
Essentially what I want to do is copy a WebBrowser object such that I can do the equivalent of "Open In New Tab" or "Open In New Window" actions, maintaining any posted data. I don't just want to navigate to the same URL as in the original WebBrowser object, rather I want to repeat the HttpWebRequest.
View 1 RepliesI have a bunch of dynamically created controls by the user which I'm storing as a control collection in the session state so I can display them on every postback. Each control that the user generates is a div with other controls inside it. I have a button on each control that will allow the user to either delete the control or duplicate it.
[Code]...
Im getting a constraint error when running the following code. there are four fields set as the primary key on the table: bid number, phase number, phase version, detail number.
It errors out saying that bidno, phaseno, phaseversion are the keys and unique. it does not mention the detail number, but it will error out as soon as i run the line dtDest = dsbid.phasedetail.copy....or, if i use the clone (as in the example below), it errors as soon as i add the row.
CODE:
I have an interface that implements the ICloneable interface with the following method declaration Overloads Function Clone() As Object Under this interface is an abstract class "Animal" with:
[Code]....
Imports Microsoft.VisualBasic
Public Class DealSlot
Private mSlotType As String
[Code]...
How can I make the content of my tabitem a copy of another class in my solution?
View 6 RepliesI ve google addrange method and came to msdn but there they showed this:
Private
Sub
CreateMyListView()
[code]....
I want to make a clone of a selected row in a DataGridView, while searching I saw that a 'Clone' method exists but I can't use it too well I don't know if it is due to have a Binding Source to it. Are someone familiarized with this method ?
View 2 RepliesI have 1 picturebox load with the form, it is possible to make copies of the pixture box, but not like clone so its mirroring the same thing?
View 4 RepliesLet's say we have object A and object B (Picturbox for e.g) Iwant to move A from its position to B's position straightly .what is the mathmatical equalation to get the X,Y coordinator that A must move from its position straightly to B's positionI have another thing ,I would like to know how can I determine that an object (button for e.g) make collusion with a clone of itself.
View 1 RepliesI have the following code:
Public Class MyColorsClass
'Constructors
Public Sub New()
'Empty Constructor
[code]....
However, if the empty constructor was called to instatiate this class then the colortype is not yet set. Therefore, if one accesses the 'IsColorCool' property it will always return 'False'. Now for the sake of this example, I must keep the empty constructor as part of the class.Now I could add some code in the 'IsPropertyCool' to check and see if a ColorType has been defined, and throw an exception if it has not been set, but I don't really want to do that.I also could always move the logic OUT of the property and into a method on the class called 'DefineIfColorIsCool' or something, and make the owness on the caller to make sure the method was called if they want to use the property 'IsColorCool'?
Supose a base class
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 have procedure (Import) that calls a for a new instance of frmImportData. I also have a class name clsBatch that has a data table property called prpParametersTable.For some reason, I get an error (indicated below with ERROR>>>) when trying to assign prpParameterTable to cv_dtImport2. The error states "Object reference not set to an instance of an object.". Why does this error not happen when I assign dtBP to cv_dtImport1? Both cv_dtImport1 and cv_dtImport2 are equal to Nothing and in my Import procedure dtBP = prpParametersTable.
Public Sub Import(ByVal clsB As clsBatch)
Try
Me.cv_clsB = clsB
[code]....
I have three class files, accounts.vb and transactions.vb in addition to my form.vb. I am unable to retrieve a member variable from on class from inside the other. When the combobox index changes, the program loads the correct account (checking or saving) from two different sequential files. I don't think I have the calcBalance procedure in the correct class file. And that is what I am having trouble with. Accessing it to display it. [Code]
View 1 RepliesThis is a bit of a continuation from a previous post for which AtmaWeapon was very informative.
Problem:
A parent class has a sub class with various properties. A property of the parent class is a List(of T) with T = the sub class The issue is how to store data in the sub class of the instantiated parent
Some example code (hopefully formatted correctly):
Code:
'=========== Class Definitions =============
Public Class courseClass
Public Class timeTableClass
[Code].....
I am trying to create an list or an array of a class.Here is my "Ingredient" class that I am trying to create a list of:[code]In my "recipe" class, I am want to create a list (or array) and I am drawing a big blank on how to do it. Can anyone point me in the right direction?
View 2 RepliesI have a class library in VB.NET that does a NET-envelope for an USB device driver.There is only one function of that driver that I could not envelope in a traditional class, but I had to put it in a Windows Service as described here:Sharing a class property (field) between applications.The Windows Service works fine, but I have now two projects for my NET-envelope: the one with the class library, the second with the windows service and I do not like the idea to maintain two distinct projects for the same driver.Is it a good practice (or even if possible) to add a windows service class to a normal class library (without creating its own project as described in the vb tutorial)?I know, in any case I should create a separate setup only for the windows service, but in this way I could have together all the classes that envelope my usb device driver in only one project.
View 1 RepliesI have the following property in a property grid in VB.Net 2010.
<Description("Rapid Entry Post Car Wash Settings CarWashOptionPushButtons"), _
Category("Post Car Wash")> _
Public Property CarWashOptionPushButtons() As String
[code]....
I need to make this property a list box that gets the values from a database table and populates the list box with the values from the table. I have tried numerous things to no avail.
I have a class that has the following property that is generated by the methods in the constructor.
Public Class clsLoadTables
Private _ds As New DataSet
Public Property ds() As DataSet
Get
[CODE]........................
My problem is that I do not want to inherit this class, but I have other classes that need to access the ds DataSet property. If at all possible I would like to not use inheritance and not load my datatable more than once in the program.
Here is my failed attempt to access the property inside another class that is not inheriting clsLoadTables:
[CODE].........................
How I can access this dataset that I want to load only once in the program from many classes without using class inheritance or a global module?