|
i know pointers aren't really the thing here
i guess i was asking if the function returns a pointer to the data or a copy of the data
that's what i do not quite get in c#
lets say i have a class:
class doc {
int doc_id;
string doc_title;
byte [] doc_data;
public doc()
{
doc_id = 0;
doc_title = string.Empty;
doc_data = null;
}
byte [] getdoc()
{
if (doc_data == null){
doc_data = get_the_data_from_somewhere_over_the_network(id);
}
return doc_data;
}
}
does the getdoc() function return a copy of the data or a ptr to the data?
"mostly watching the human race is like watching dogs watch tv ... they see the pictures move but the meaning escapes them"
|
|
|
|
|
l a u r e n wrote: does the getdoc() function return a copy of the data or a ptr to the data?
It returns a reference to doc_data. No copy is made. The reference "refers" to the same exact data the doc_data field "refers" to.
l a u r e n wrote: i guess i was asking if the function returns a pointer to the data or a copy of the data
that's what i do not quite get in c#
In .NET, this is arguably THE fundamental thing that must be understood, especially if you come from a language like C/C++. Except for simple classes that are defined as value types (which are copied when you do an assignment), most classes are reference types, so any time you pass/return objects of those classes you pass/return references to an object - the SAME object. The implication is that if you alter that object, every other place there's a reference held on that same object is effected.
This MUST be understood... Types (C# Reference)[^]
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
thank you so much for the time you took to explain that
much appreciated
"mostly watching the human race is like watching dogs watch tv ... they see the pictures move but the meaning escapes them"
|
|
|
|
|
You're welcome!
Better explained at the link...
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Mark Salsbery wrote: Except for simple classes that are defined as value types
Aka structs?
|
|
|
|
|
|
Ah I forgot enums.. thanks
|
|
|
|
|
Depends on how many objects of your class you'll have/load at a time.
If you have many each of them keeping a few mb of data, not so OK.
A different approach(that I mostly use) is to create separate methods in the "DataLayer" one that loads
only id and name(null or zero sized/empty byte[]). And another one thatn loads the byte[] too, or maybe just the byte[]
for a given ID.
That way a much lower impact on memory and speed too(given that the byte[] can be easily retrieved by using the ID
in the DB if any). In other words load the few mb only when required/needed.
My post/answer utterly assumes that there is a DB somewhere. If not, please ignore it.
All the best,
Dan
|
|
|
|
|
essentially what i'm doing yes
except the database is over the wire and the data is downloaded on demand
my actual question is explained better above
thnx
"mostly watching the human race is like watching dogs watch tv ... they see the pictures move but the meaning escapes them"
|
|
|
|
|
l a u r e n wrote: should i simply use the existing class
Sure, but maybe it needs a ToString method?
|
|
|
|
|
no idea what this means / relates to but thanks for trying to help
"mostly watching the human race is like watching dogs watch tv ... they see the pictures move but the meaning escapes them"
|
|
|
|
|
l a u r e n wrote: there aren't really pointers in c# as such
There are.
|
|
|
|
|
yes i know there *are* pointers in c# but they are not the *preferred* way of writing c# afaik
if i wanted to write my code as i see best i wouldn't use .net for anything but i am trying to do things right
"mostly watching the human race is like watching dogs watch tv ... they see the pictures move but the meaning escapes them"
|
|
|
|
|
Use the existing class.
You can always use pointers in C#. Its called unsafe code.
Too much of heaven can bring you underground
Heaven can always turn around
Too much of heaven, our life is all hell bound
Heaven, the kill that makes no sound
|
|
|
|
|
i have website that send SMS
i need to send any query to this web but i dont want to open the browser
i try this: `System.Diagnostics.Process.Start("IExplore.exe", MyWeb + sbXml.ToString());`
its work excellent - but it open the website in the browser
thanks in advance
|
|
|
|
|
Gali1978 wrote: i need to send any query to this web but i dont want to open the browser
Which is purpose of that?!
I Love T-SQL
"VB.NET is developed with C#.NET"
If my post helps you kindly save my time by voting my post.
www.cacttus.com
|
|
|
|
|
|
thanks for the help,
i have website that send SMS
can i get any sample C# code for how to use HttpWebRequest ?
thanks
|
|
|
|
|
|
that is true but the catch is that u need to write a code that they both understand
|
|
|
|
|
I have no idea what you mean.
Martin Fowler wrote: Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
|
|
|
|
|
Hope this information can give you some help http://global.sjzp.com
|
|
|
|
|
Use HttpWebReuqest . Google is your friend.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass." - Dale Earnhardt, 1997
|
|
|
|
|
Hi
I want to stop the reload of master page on every page call.master page code should load first time after that when other page will call than master page loaded data should be as it is ,only need the page data should change.
please help
|
|
|
|
|
Try to use AJAX.
I Love T-SQL
"VB.NET is developed with C#.NET"
If my post helps you kindly save my time by voting my post.
www.cacttus.com
|
|
|
|