|
Hi,
i need something similar to a pointer in C#. C# itself has pointers implemented but they do not fit my needs.
I want to "map" a Variable to another one, in two different objects of a different class.
Pointing to a variable of a "user-defined" type is not a problem but pointing to a "managed" type is. It doesn't let me point to strins, integers or other built-in datatypes.
Thats why pointers do not work in my case - do you know any workaround for making the pointers work as i want them to or do you know another possibility to realize this?
Here is a little example of what i want to be able to do:
<br />
class MyClass<br />
{<br />
public int AValue = null;<br />
}<br />
<br />
class AnotherClass<br />
{<br />
public int * APointerToAValue = null;<br />
<br />
public AnotherClass(ref int MappingVar)<br />
{<br />
unsafe<br />
{<br />
fixed (int * tmpptr = &MappingVar)<br />
{<br />
APointerToAValue = tmpptr;<br />
}<br />
}<br />
}<br />
}<br />
Now when executing the following code
<br />
MyClass MyObj = new MyClass();<br />
AnotherClass AnotherObj = new AnotherClass(ref MyObj.AValue);<br />
<br />
AnotherObj.APointerToAValue = 3<br />
Console.WriteLine("Pointer: " + AnotherObj.APointerToAValue.ToString());<br />
Console.WriteLine("Value: " + MyObj.AValue.ToString());<br />
<br />
MyObj.AValue = 4<br />
Console.WriteLine("Pointer: " + AnotherObj.APointerToAValue.ToString());<br />
Console.WriteLine("Value: " + MyObj.AValue.ToString());<br />
this result should be produced:
<br />
Pointer: 3<br />
Value: 3<br />
Pointer: 4<br />
Value: 4<br />
Is there any way to manage it like this in C#? It doesn't has to be realized with pointers at all i just need a solution for the given problem!
|
|
|
|
|
You can not access the member of the class directly (unless resorting to reflection), but you can use a propery to transparently access the member via the object:
class AnotherClass {
private MyClass theOther;
public AnotherClass(MyClass theOther) {
this.theOther = theOther;
}
public int TheValue {
get { return this.theOther.AValue; }
set { this.theOther.AValue = value; }
}
}
---
b { font-weight: normal; }
|
|
|
|
|
Thanks for replying.
The situation is a bit more complicated than i told you that's why it won't be solvable this way. I don't know the variable which will be "mapped". So in the first example i used "ref AValue" as parameter for AnotherClasses constructor. In fact, AValue could be MyValue, HisValue or AnyonesValue - i don't know it before calling the constructor at runtime.
The "TheValue"-property would have to return the variable, which was permitted to the constructor. At this point i will need pointers again.
As already said, thank you for you reply but i couldn't solve the problem by now
|
|
|
|
|
Then you have to rethink the entire problem. You can't use pointers in that way in a platform that uses a garbage collected heap. You would have to pin the object that you are pointing into at the current memory location, which will badly cripple the whole garbage collecting process as long as it is pinned.
---
b { font-weight: normal; }
|
|
|
|
|
how to add row and delete row geting data from txtboxes to Janus GridEx (Grid)
sikandar
|
|
|
|
|
|
In C#, I want to write a method to determined if astring contains any UniCode character( a character belong UniCode but not in Utf8, such as a japanese character or chinese character ), How can I do it? Please help me.
Thanks.
-- modified at 3:21 Monday 4th September, 2006
|
|
|
|
|
UTF-8 is an encoding of Unicode, so any Uncode character can be stored in UTF-8.
I don't know exactly what you want to find out, but perhaps the Char.IsSurrogate method is something that you are looking for.
---
b { font-weight: normal; }
|
|
|
|
|
Thank you.
I find the Char.isSurrogate() always return false, such as Char.isSurrogate('a'),Char.isSurrogate('10') all return false.
but it give me the right way, and I read the topic of Char class,
and find follow code can answer my question:
Char.GetUnicodeCategory(char1)==System.Globalization.UnicodeCategory.OtherLetter
when char1 is a Eastern character, it return true.
|
|
|
|
|
hi guys!
need some help!
i m developing a Enterprise deployment Application which will install software on network from a remote machine..
for this i m using WMI "Win32_Product" class for remote installation
the code is working fine on Win 2000,XP home, XP pro, XP sp1,sp2 .. but gives an Invalid class Exception on win 2003 ..
the problem is "WMI Windows Installer Provider" component which is installed by default on all the above OS except WIN 2003, on this OS it is Optional and had to be installed mannually on each of this kind of OS ..
the Problem is I want this Component also to be installed Remotly on PC's having 2k3 by my application only.. of course i have admin rights on all network PC's
Any ideas how to install this component Programmatically..
any guideline.. will be a great help..
also where can i find the Setup for this as it is a windows component..
abhinav
|
|
|
|
|
How can I have a PrintScreen Of current page in the clipboard
( for Example when some event occur the print screen of the page copy to clipboard)
WITH.THANKS
MHF
|
|
|
|
|
Hello,
I hope this article is helpfull to u.
regards,
Divyang Mithaiwala
System Engineer & Software Developer
|
|
|
|
|
Hi Dear Respected Programmers
I have designed a little project and I want to make a Setup of my designed project. Kindly let me know, How may I make a Setup of my C# Project?
Thank you very much in Advance
|
|
|
|
|
First build youre project in release mode then
Create A new "Setup project" in you're Soluation and set the propertys
Build you're setup project the output is the "yourename.MSI" And "Setup.exe"
you can have ini file ;
MHF
|
|
|
|
|
Hi
I want to get windows system directory? I have to save some files there and then access to them.
Please help me.
-- modified at 2:22 Monday 4th September, 2006
|
|
|
|
|
hi!
i think u r looking for this..
string WinDir = System.Environment.GetEnvironmentVariable("windir");
abhinav
|
|
|
|
|
Hello
string SystemPath = Environment.GetFolderPath(Environment.SpecialFolder.System);
Regards
|
|
|
|
|
It isn't recommended to save files in the system directory and running under Vista it isn't allowed unless you are running with specific elevated privileges (usually only given to installer apps.)
The correct way to find it is
Environment.GetFolderPath(Environment.SpecialFolder.System)
|
|
|
|
|
Hi all,
How would i go about trimming the first character in a string?
Example: I want to add "+27" to the Variable that contains "0721234567". But first i need to delete the "0" from the Variable. So then the Variable will contain "+27721234567".
Thank you in advance.
"Many of life's failures are people who did not realize how close they were to success when they gave up." Thomas A. Edison
|
|
|
|
|
hi
dim str as string = "0721234567"
dim strNew as string = str.Substring(1)
str = "+27" & strNew
Tamimi - Code
|
|
|
|
|
Thank you for your time.
"Many of life's failures are people who did not realize how close they were to success when they gave up." Thomas A. Edison
|
|
|
|
|
Ok
<br />
string strNumber="0721234567";<br />
string strPreCode="+27";<br />
strNumber = strPreCode + strNumber.Substring(1,strNumber.Length-1);<br />
this code add PreCode(+27) to first of Number(0721234567), but first remove zero(0) from first position of Number.
|
|
|
|
|
Thank you for your time.
"Many of life's failures are people who did not realize how close they were to success when they gave up." Thomas A. Edison
|
|
|
|
|
hi ,
string s = "0721234567";
if(s.StartsWith("0")) s= s.Replace("0","+27");
cheers.
|
|
|
|
|
Hi,
Can anybody help me to get Icon details like its name, target path, working directory whenever it is double-clicked to run the application. This is be using Windows API or in C#.
I have already used IShellLink Interface but its been hard-coded for icon name. Suppose the user changes desktop icon name then also coding should be able to change its working directory. This can be done if I can check the existence of the icon.
Regards.
Chilly
|
|
|
|