|
Ista wrote:
I need a collection to point to individual items in another collection.
How would I write the ionline c++ code inside a c# function
Or can I write a c++ managed code function inside a dll and will it work with my c# application
Please redefine the question!!! Else the answer will be 42.
leppie::AllocCPArticle(Generic DFA State Machine for .NET);
|
|
|
|
|
I have a collection A which have the sam items in each collection
order detail class contains a detail description. In each detail description there is a collection ther we call collection A.
Well in order for the data grid to work I need to create a collection B inside order details class. In each item of collection b I want to simple point to the correct item of collection A.
nick
I'm not an expert yet, but I play one at work. Yeah and here too.
|
|
|
|
|
|
well if someone could help me with example on how i reference a collection item to another collection item I wouldnt resort to c++ pointers, but pointers are easy anyhow.
I'm not an expert yet, but I play one at work. Yeah and here too.
|
|
|
|
|
An object reference is a pointer to an object anyway, so:
If you want the entire collection B to be the same as collection A:
CollectionB=CollectionA;
If you want to only reference certain items from Collection A in Collection B, just add references to those objects to Collection B:
CollectionB.Add(CollectionA[index];
If you want to change items in Collection A, so that you're actually changing what's in Collection A, not just the objects themselves, the best thing to do is have Collection B store the indexes of the elements in Collection A, so that you can modify Collection A's contents based on the indexes stored in collection A.
"Blessed are the peacemakers, for they shall be called sons of God." - Jesus
"You must be the change you wish to see in the world." - Mahatma Gandhi
|
|
|
|
|
actually the second answer doesnt work because you cant reference an indexer. already tried that one
I'm not an expert yet, but I play one at work. Yeah and here too.
|
|
|
|
|
I wasn't talking about referencing an indexer - I was talking about a collection of indexes corresponding to the indexes of the items in collection A.
"Blessed are the peacemakers, for they shall be called sons of God." - Jesus
"You must be the change you wish to see in the world." - Mahatma Gandhi
|
|
|
|
|
jdunlap wrote:
If you want to change items in Collection A, so that you're actually changing what's in Collection A, not just the objects themselves, the best thing to do is have Collection B store the indexes of the elements in Collection A, so that you can modify Collection A's contents based on the indexes stored in collection A.
I mean yeah I could override the indexers to pass through but I don't like that pattern. I would much rather access an array of pointers instead. I mean that is simplistic c++ code rather than having object forwarding with extra type casting and the whole works.
I mean if I have to take the time to write a collection that then accesses another collection based on its index or an object type. Then theres much more debugging involved and if I do indexof then it compares objects and that defeats the whole purpose of it all. That and it involves more coding.
Using a collection or array of pointers doesnt create a mess of code and I can simply check the value to see if its actually pointing to a null address which is one line of code to debug. That and if the object is changed to be a new one the address wont repeat itself while an index could.
My thoughts and opinions about this whole thing.
So how do you declare a c++ code block in c#. I know its possible but dont know how to set it up?
nick
I'm not an expert yet, but I play one at work. Yeah and here too.
|
|
|
|
|
|
Well, if you really want to use pointers, you can do so in exactly the same way you would do it in C++, only when you declare a variable, you will want to add the fixed keyword to the variable declaration, to keep GC from moving the memory while you're still using it.
A method that uses pointers must have the unsafe keyword, or else the code must be in an unsafe block:
public unsafe void Foo()
{
}
...OR...
unsafe
{
}
You also must check the "allow unsafe code" option in project options, or compile with the /unsafe compiler option.
"Blessed are the peacemakers, for they shall be called sons of God." - Jesus
"You must be the change you wish to see in the world." - Mahatma Gandhi
|
|
|
|
|
thank you sir
I'm not an expert yet, but I play one at work. Yeah and here too.
|
|
|
|
|
|
its a bad link
I'm not an expert yet, but I play one at work. Yeah and here too.
|
|
|
|
|
|
Hello Ista,
In C#, there are two kinds of types, value types and reference types. A very limited set of information fits into the value type category, for example int, and double. Most types, including string and all objects are reference types.
Variables declared as reference types don't actually hold the underlying data, but instead have a reference to it, this is very much like pointer, but you don't have to use *. Several variables can hold references to the same object, copying from one variable (or collection) to another doesn't duplicate the underlying data, it just copies a pointer.
In short, I don't think you need pointers, the standard collections should work the way you want.
Burt Harris
|
|
|
|
|
so are you saying if I type this
CollectionA.Add(CollectionB[index]);
then collection would hold a reference to B. not a copy but a reference
thats where I'm confused with this c# thing because
to pass by value MyMethod object obj) pass the value or a copy
so to pass by reference = MyMethod( ref object obj )
and thats where I got foobar'd in that you cannot pass by reference an indexer
MyMethod( ref CollectionA[0] );
so thats what I'm asking.
The scenario is this I have to have a main collection for the datagrid, it cant concatenate multiple collections. Yes they are all the same type but belong to sevreral different parent objects.
Thats my whole dilemna. I have written a workaround but I dont like nor want to keep it because the code will get very intricate over the next week and will cause debugging issues.
nick
I'm not an expert yet, but I play one at work. Yeah and here too.
|
|
|
|
|
Ista wrote:
so are you saying if I type this
CollectionA.Add(CollectionB[index]);
then collection would hold a reference to B. not a copy but a reference
Correct.
Ista wrote:
thats where I'm confused with this c# thing because
to pass by value MyMethod object obj) pass the value or a copy
so to pass by reference = MyMethod( ref object obj )
and thats where I got foobar'd in that you cannot pass by reference an indexer
MyMethod( ref CollectionA[0] );
so thats what I'm asking.
When you pass a reference type, it is always passed as a reference, because a variable of a reference type always holds a reference to the value, not the actual value.
When you pass a reference type by reference, something interesting happens - a reference to the variable that holds the reference is passed. If you change that variable, the original variable will also hold the new reference.
"Blessed are the peacemakers, for they shall be called sons of God." - Jesus
"You must be the change you wish to see in the world." - Mahatma Gandhi
|
|
|
|
|
ok but how do i pass it since CollectionA[0] isnt a valid statement
I'm not an expert yet, but I play one at work. Yeah and here too.
|
|
|
|
|
CollectionB[0]=CollectionA[0];
or
CollectionB.Add(CollectionA[0];
"Blessed are the peacemakers, for they shall be called sons of God." - Jesus
"You must be the change you wish to see in the world." - Mahatma Gandhi
|
|
|
|
|
cool thanks
I'm not an expert yet, but I play one at work. Yeah and here too.
|
|
|
|
|
Hi,
How do i manage an application who have 2 windows?
Is it possible to have a frame in C# where I can show the active screen?
In Java I would first create a JFrame to manage all the JPanels.
How do I do that in C#?
modified 23-Jul-20 21:01pm.
|
|
|
|
|
a splitter window, a panel
I'm not an expert yet, but I play one at work. Yeah and here too.
|
|
|
|
|
How can I add a Form like Taskbar?
It stays at an edge of the screen. It can AutoHide when mouse leaves and Show when mouse moves in.
My English is poor.I hope you can understand me.
Thank you.
|
|
|
|
|
|
Hi Dears
I want to develop a MS Word Addin. The main functionality of this addin is:
--> I have to convert a MS Word file (.doc) into (.pdf) file format.
What should I take as first step to implement this functionality.
Kindly guide/help me in the form of some code/link.
I'll be grateful to you.
Kind Regards
Atif
Watch Your Thoughts for they will become your actions.
Watch Your Actions for they will become your habits.
Watch Your Habits for they will become your beliefs.
Watch Your Beliefs for they will determine your destiny.
|
|
|
|