Search:
Namespaces
Discussions
.NET v1.1
Feedback
NOT ANSWERED passing ref by ref in C#
Messages
Related Types
This message was discovered on
ASPFriends.com 'aspngescalate' list
.
Bryan Costanich (Excell Data Corporation)
This is a multi-part message in MIME format.
--------------InterScan_NT_MIME_Boundary
Content-Type: multipart/alternative;
boundary="----_=_NextPart_001_01C1D99E.EB8310E0"
------_=_NextPart_001_01C1D99E.EB8310E0
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Ok, so I have a wrapper function that essentially does the following:
=20
public void DoSomething(ref Object Param1)
{
SomeOtherFunction(ref Param1);
}
=20
Of course, since .net lacks double pointers, when you do this you get
the error of Param1 must be an IValue (can't pass a ref to a ref..)
=20
So I do the following:
=20
public void DoSomething(ref Object Param1)
{
Object objTemp =3D Param1;
SomeOtherFunction(ref objTemp);
Param1 =3D objTemp;
}
=20
of course now I have 3x the operations, AND I'm using memory... Is
there any way around this in .NET?? &Of or something??
=20
------_=_NextPart_001_01C1D99E.EB8310E0
Content-Type: text/html;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
<html>
<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 10 (filtered)">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Verdana;}
h1
{margin-top:12.0pt;
margin-right:0in;
margin-bottom:0in;
margin-left:0in;
margin-bottom:.0001pt;
page-break-before:always;
page-break-after:avoid;
background:black;
font-size:14.0pt;
font-family:Verdana;}
h2
{margin-top:15.0pt;
margin-right:0in;
margin-bottom:9.0pt;
margin-left:0in;
border:none;
padding:0in;
font-size:13.0pt;
font-family:Verdana;}
h3
{margin-top:12.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:0in;
page-break-after:avoid;
font-size:12.0pt;
font-family:Verdana;
font-weight:normal;
font-style:italic;}
h4
{margin-top:3.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:.8in;
text-indent:-.5in;
page-break-after:avoid;
font-size:10.0pt;
font-family:Verdana;
font-weight:normal;
font-style:italic;}
h5
{margin-top:6.0pt;
margin-right:0in;
margin-bottom:0in;
margin-left:.9in;
margin-bottom:.0001pt;
text-indent:-.5in;
font-size:10.0pt;
font-family:Verdana;
font-weight:normal;}
h6
{margin-top:12.0pt;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Verdana;}
p.MsoHeading9, li.MsoHeading9, div.MsoHeading9
{margin-top:12.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:0in;
font-size:9.0pt;
font-family:Arial;
font-weight:bold;
font-style:italic;}
p.MsoToc1, li.MsoToc1, div.MsoToc1
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:Arial;
font-weight:bold;}
p.MsoToc2, li.MsoToc2, div.MsoToc2
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:10.0pt;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Arial;
font-weight:bold;
font-style:italic;}
p.MsoToc3, li.MsoToc3, div.MsoToc3
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:20.0pt;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Arial;}
p.MsoToc4, li.MsoToc4, div.MsoToc4
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:30.0pt;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Arial;}
p.MsoToc5, li.MsoToc5, div.MsoToc5
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:40.0pt;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Arial;}
p.MsoToc6, li.MsoToc6, div.MsoToc6
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:50.0pt;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Arial;}
p.MsoToc7, li.MsoToc7, div.MsoToc7
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:60.0pt;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Arial;}
p.MsoToc8, li.MsoToc8, div.MsoToc8
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:70.0pt;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Arial;}
p.MsoToc9, li.MsoToc9, div.MsoToc9
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:80.0pt;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Arial;}
p.MsoCommentText, li.MsoCommentText, div.MsoCommentText
{margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Verdana;}
p.MsoHeader, li.MsoHeader, div.MsoHeader
{margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Verdana;}
p.MsoFooter, li.MsoFooter, div.MsoFooter
{margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Verdana;}
p.MsoListBullet, li.MsoListBullet, div.MsoListBullet
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.25in;
margin-bottom:.0001pt;
text-indent:-.25in;
font-size:9.0pt;
font-family:Arial;}
p.MsoTitle, li.MsoTitle, div.MsoTitle
{margin-top:12.0pt;
margin-right:0in;
margin-bottom:0in;
margin-left:0in;
margin-bottom:.0001pt;
font-size:16.0pt;
font-family:Verdana;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
{margin:0in;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:Tahoma;
color:#999999;
font-style:italic;}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;}
p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap
{margin:0in;
margin-bottom:.0001pt;
background:navy;
font-size:10.0pt;
font-family:Tahoma;}
p.MsoCommentSubject, li.MsoCommentSubject, div.MsoCommentSubject
{margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Verdana;
font-weight:bold;}
p.code, li.code, div.code
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.7in;
margin-bottom:.0001pt;
font-size:8.0pt;
font-family:"Courier New";}
p.Code0, li.Code0, div.Code0
{margin-top:3.0pt;
margin-right:0in;
margin-bottom:0in;
margin-left:1.0in;
margin-bottom:.0001pt;
font-size:8.0pt;
font-family:"Courier New";}
p.Normal-indent, li.Normal-indent, div.Normal-indent
{margin-top:6.0pt;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:.6in;
font-size:9.0pt;
font-family:Arial;}
p.Outline-Normalminusparagraphspace, =
li.Outline-Normalminusparagraphspace, =
div.Outline-Normalminusparagraphspace
{margin-top:3.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:.25in;
text-indent:-.25in;
font-size:9.0pt;
font-family:Arial;}
p.quote, li.quote, div.quote
{margin-top:6.0pt;
margin-right:.1in;
margin-bottom:6.0pt;
margin-left:.7in;
font-size:9.0pt;
font-family:Arial;}
p.SubTitle, li.SubTitle, div.SubTitle
{margin:0in;
margin-bottom:.0001pt;
font-size:13.0pt;
font-family:Verdana;
font-weight:bold;}
p.TipBlock, li.TipBlock, div.TipBlock
{margin-top:6.0pt;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:1.0in;
background:#E6E6E6;
border:none;
padding:0in;
font-size:9.0pt;
font-family:Arial;}
p.TipCode, li.TipCode, div.TipCode
{margin-top:3.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:1.0in;
background:#E6E6E6;
border:none;
padding:0in;
font-size:8.0pt;
font-family:"Courier New";}
p.TipHeading, li.TipHeading, div.TipHeading
{margin-top:6.0pt;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:1.0in;
background:#E6E6E6;
border:none;
padding:0in;
font-size:9.0pt;
font-family:Arial;
font-weight:bold;}
span.EmailStyle47
{font-family:Arial;
color:windowtext;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
{page:Section1;}
/* List Definitions */
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
-->
</style>
</head>
<body lang=3DEN-US link=3Dblue vlink=3Dpurple>
<div class=3DSection1>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Ok, so I have a wrapper function that essentially =
does the
following:</span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'> </span></font></p>
<p class=3DMsoNormal style=3D'margin-left:.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'>public void =
DoSomething(ref
Object Param1)</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'>{</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'> =
SomeOtherFunction(ref
Param1);</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'>}</span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'> </span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Of course, since .net lacks double pointers, when you =
do
this you get the error of Param1 must be an IValue (can’t pass a =
ref to a
ref..)</span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'> </span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>So I do the following:</span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'> </span></font></p>
<p class=3DMsoNormal style=3D'margin-left:.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'>public void =
DoSomething(ref
Object Param1)</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'>{</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'> Object =
objTemp =3D
Param1;</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'> =
SomeOtherFunction(ref
objTemp);</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'> Param1 =
=3D objTemp;</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'>}</span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'> </span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>of course now I have 3x the operations, AND I’m =
using
memory… Is there any way around this in .NET?? &Of or
something??</span></font></p>
<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'> </span></font></p>
</div>
</body>
</html>
=00
------_=_NextPart_001_01C1D99E.EB8310E0--
--------------InterScan_NT_MIME_Boundary--
Reply to this message...
Jon Ide
Bryan,
I tried doing the ref to a ref and it worked just fine for me. My code is:
public class MyClass
{
public MyClass(string str)
{
m_str = str;
}
string m_str;
}
< Windows Application code omitted... >
private void button1_Click(object sender, System.
EventArgs
e)
{
MyClass class1 = new MyClass("foo");
FooBar1(ref class1);
}
private void FooBar1(ref MyClass mc)
{
FooBar2(ref mc);
}
private void FooBar2(ref MyClass mc)
{
mc = new MyClass("bar");
}
The compiler didn't complain, and the object was modified as expected. Am I
missing the point?
Jon Ide
-----Original Message-----
From: Bryan Costanich (Excell Data Corporation)
[mailto:
Click here to reveal e-mail address
]
Sent: Monday, April 01, 2002 11:02 AM
To: aspngescalate
Subject: [aspngescalate] NOT ANSWERED passing ref by ref in C#
Ok, so I have a wrapper function that essentially does the following:
public void DoSomething(ref Object Param1)
{
SomeOtherFunction(ref Param1);
}
Of course, since .net lacks double pointers, when you do this you get the
error of Param1 must be an IValue (can't pass a ref to a ref..)
So I do the following:
public void DoSomething(ref Object Param1)
{
Object objTemp = Param1;
SomeOtherFunction(ref objTemp);
Param1 = objTemp;
}
of course now I have 3x the operations, AND I'm using memory... Is there
any way around this in .NET?? &Of or something??
Reply to this message...
Bryan Costanich (Excell Data Corporation)
This is a multi-part message in MIME format.
--------------InterScan_NT_MIME_Boundary
Content-Type: multipart/alternative;
boundary="----_=_NextPart_001_01C1D9BE.6C16ADA6"
------_=_NextPart_001_01C1D9BE.6C16ADA6
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
No, you got it, and you're right. Unfortunately I paraphrased a much
larger problem and misinterpreted it. The problem actually lies in when
I try to pass an object by ref to a DCOM stub and I have to convert it.
=20
Thanks for your help, consider this one solved.. at least for now :-)
=20
-----Original Message-----
From: Jon Ide [mailto:
Click here to reveal e-mail address
]=20
Sent: Monday, April 01, 2002 12:20 PM
To: aspngescalate
Subject: [aspngescalate] RE: NOT ANSWERED passing ref by ref in C#
=20
Bryan,
=20
I tried doing the ref to a ref and it worked just fine for me. My code
is:
=20
public class MyClass
{
public MyClass(string str)
{
m_str =3D str;
}
=20
string m_str;
}
=20
< Windows Application code omitted... >
=20
private void button1_Click(object sender, System.
EventArgs
e)
{
MyClass class1 =3D new MyClass("foo");
FooBar1(ref class1);
}
=20
private void FooBar1(ref MyClass mc)
{
FooBar2(ref mc);
}
=20
private void FooBar2(ref MyClass mc)
{
mc =3D new MyClass("bar");
}
=20
The compiler didn't complain, and the object was modified as expected.
Am I missing the point?
=20
Jon Ide
=20
-----Original Message-----
From: Bryan Costanich (Excell Data Corporation)
[mailto:
Click here to reveal e-mail address
]=20
Sent: Monday, April 01, 2002 11:02 AM
To: aspngescalate
Subject: [aspngescalate] NOT ANSWERED passing ref by ref in C#
=20
Ok, so I have a wrapper function that essentially does the following:
=20
public void DoSomething(ref Object Param1)
{
SomeOtherFunction(ref Param1);
}
=20
Of course, since .net lacks double pointers, when you do this you get
the error of Param1 must be an IValue (can't pass a ref to a ref..)
=20
So I do the following:
=20
public void DoSomething(ref Object Param1)
{
Object objTemp =3D Param1;
SomeOtherFunction(ref objTemp);
Param1 =3D objTemp;
}
=20
of course now I have 3x the operations, AND I'm using memory... Is
there any way around this in .NET?? &Of or something??
=20
| [aspngescalate] member
Click here to reveal e-mail address
=3D YOUR ID |
http://www.asplists.com/asplists/aspngescalate.asp
=3D JOIN/QUIT=20
------_=_NextPart_001_01C1D9BE.6C16ADA6
Content-Type: text/html;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
<html>
<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 10 (filtered)">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Verdana;}
h1
{margin-top:12.0pt;
margin-right:0in;
margin-bottom:0in;
margin-left:0in;
margin-bottom:.0001pt;
page-break-before:always;
page-break-after:avoid;
background:black;
font-size:14.0pt;
font-family:Verdana;}
h2
{margin-top:15.0pt;
margin-right:0in;
margin-bottom:9.0pt;
margin-left:0in;
font-size:13.0pt;
font-family:Verdana;}
h3
{margin-top:12.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:0in;
page-break-after:avoid;
font-size:12.0pt;
font-family:Verdana;
font-weight:normal;
font-style:italic;}
h4
{margin-top:3.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:.8in;
text-indent:-.5in;
page-break-after:avoid;
font-size:10.0pt;
font-family:Verdana;
font-weight:normal;
font-style:italic;}
h5
{margin-top:6.0pt;
margin-right:0in;
margin-bottom:0in;
margin-left:.9in;
margin-bottom:.0001pt;
text-indent:-.5in;
font-size:10.0pt;
font-family:Verdana;
font-weight:normal;}
h6
{margin-top:12.0pt;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Verdana;}
p.MsoHeading9, li.MsoHeading9, div.MsoHeading9
{margin-top:12.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:0in;
font-size:9.0pt;
font-family:Arial;
font-weight:bold;
font-style:italic;}
p.MsoToc1, li.MsoToc1, div.MsoToc1
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:Arial;
font-weight:bold;}
p.MsoToc2, li.MsoToc2, div.MsoToc2
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:10.0pt;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Arial;
font-weight:bold;
font-style:italic;}
p.MsoToc3, li.MsoToc3, div.MsoToc3
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:20.0pt;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Arial;}
p.MsoToc4, li.MsoToc4, div.MsoToc4
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:30.0pt;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Arial;}
p.MsoToc5, li.MsoToc5, div.MsoToc5
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:40.0pt;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Arial;}
p.MsoToc6, li.MsoToc6, div.MsoToc6
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:50.0pt;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Arial;}
p.MsoToc7, li.MsoToc7, div.MsoToc7
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:60.0pt;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Arial;}
p.MsoToc8, li.MsoToc8, div.MsoToc8
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:70.0pt;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Arial;}
p.MsoToc9, li.MsoToc9, div.MsoToc9
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:80.0pt;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Arial;}
p.MsoCommentText, li.MsoCommentText, div.MsoCommentText
{margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Verdana;}
p.MsoHeader, li.MsoHeader, div.MsoHeader
{margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Verdana;}
p.MsoFooter, li.MsoFooter, div.MsoFooter
{margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Verdana;}
p.MsoListBullet, li.MsoListBullet, div.MsoListBullet
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.25in;
margin-bottom:.0001pt;
text-indent:-.25in;
font-size:9.0pt;
font-family:Arial;}
p.MsoTitle, li.MsoTitle, div.MsoTitle
{margin-top:12.0pt;
margin-right:0in;
margin-bottom:0in;
margin-left:0in;
margin-bottom:.0001pt;
font-size:16.0pt;
font-family:Verdana;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
{margin:0in;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:Tahoma;
color:#999999;
font-style:italic;}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;}
p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap
{margin:0in;
margin-bottom:.0001pt;
background:navy;
font-size:10.0pt;
font-family:Tahoma;}
p.MsoAutoSig, li.MsoAutoSig, div.MsoAutoSig
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman";}
p.MsoCommentSubject, li.MsoCommentSubject, div.MsoCommentSubject
{margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Verdana;
font-weight:bold;}
p.code, li.code, div.code
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.7in;
margin-bottom:.0001pt;
font-size:8.0pt;
font-family:"Courier New";}
p.Code0, li.Code0, div.Code0
{margin-top:3.0pt;
margin-right:0in;
margin-bottom:0in;
margin-left:1.0in;
margin-bottom:.0001pt;
font-size:8.0pt;
font-family:"Courier New";}
p.Normal-indent, li.Normal-indent, div.Normal-indent
{margin-top:6.0pt;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:.6in;
font-size:9.0pt;
font-family:Arial;}
p.Outline-Normalminusparagraphspace, =
li.Outline-Normalminusparagraphspace, =
div.Outline-Normalminusparagraphspace
{margin-top:3.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:.25in;
text-indent:-.25in;
font-size:9.0pt;
font-family:Arial;}
p.quote, li.quote, div.quote
{margin-top:6.0pt;
margin-right:.1in;
margin-bottom:6.0pt;
margin-left:.7in;
font-size:9.0pt;
font-family:Arial;}
p.SubTitle, li.SubTitle, div.SubTitle
{margin:0in;
margin-bottom:.0001pt;
font-size:13.0pt;
font-family:Verdana;
font-weight:bold;}
p.TipBlock, li.TipBlock, div.TipBlock
{margin-top:6.0pt;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:1.0in;
background:#E6E6E6;
border:none;
padding:0in;
font-size:9.0pt;
font-family:Arial;}
p.TipCode, li.TipCode, div.TipCode
{margin-top:3.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:1.0in;
background:#E6E6E6;
border:none;
padding:0in;
font-size:8.0pt;
font-family:"Courier New";}
p.TipHeading, li.TipHeading, div.TipHeading
{margin-top:6.0pt;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:1.0in;
background:#E6E6E6;
border:none;
padding:0in;
font-size:9.0pt;
font-family:Arial;
font-weight:bold;}
p.code00, li.code00, div.code00
{margin-top:3.0pt;
margin-right:0in;
margin-bottom:0in;
margin-left:1.0in;
margin-bottom:.0001pt;
font-size:8.0pt;
font-family:"Courier New";}
p.normal-indent0, li.normal-indent0, div.normal-indent0
{margin-top:6.0pt;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:.6in;
font-size:9.0pt;
font-family:Arial;}
p.outline-normalminusparagraphspace0, =
li.outline-normalminusparagraphspace0, =
div.outline-normalminusparagraphspace0
{margin-top:3.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:.25in;
text-indent:-.25in;
font-size:9.0pt;
font-family:Arial;}
p.subtitle0, li.subtitle0, div.subtitle0
{margin:0in;
margin-bottom:.0001pt;
font-size:13.0pt;
font-family:Verdana;
font-weight:bold;}
p.tipblock0, li.tipblock0, div.tipblock0
{margin-top:6.0pt;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:1.0in;
background:#E6E6E6;
font-size:9.0pt;
font-family:Arial;}
p.tipcode0, li.tipcode0, div.tipcode0
{margin-top:3.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:1.0in;
background:#E6E6E6;
font-size:8.0pt;
font-family:"Courier New";}
p.tipheading0, li.tipheading0, div.tipheading0
{margin-top:6.0pt;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:1.0in;
background:#E6E6E6;
font-size:9.0pt;
font-family:Arial;
font-weight:bold;}
span.emailstyle47
{font-family:Arial;
color:windowtext;}
span.emailstyle44
{font-family:Arial;
color:navy;}
span.EmailStyle57
{font-family:Arial;
color:navy;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
{page:Section1;}
/* List Definitions */
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
-->
</style>
</head>
<body lang=3DEN-US link=3Dblue vlink=3Dpurple>
<div class=3DSection1>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>No, you got it, and you’re =
right.
Unfortunately I paraphrased a much larger problem and misinterpreted =
it. The
problem actually lies in when I try to pass an object by ref to a DCOM =
stub and
I have to convert it.</span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'> </span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>Thanks for your help, consider this =
one
solved.. at least for now </span></font><font color=3Dnavy =
face=3DWingdings><span
style=3D'font-family:Wingdings;color:navy'>J</span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'> </span></font></p>
<p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 =
face=3DTahoma><span
style=3D'font-size:10.0pt;font-family:Tahoma'>-----Original =
Message-----<br>
<b><span style=3D'font-weight:bold'>From:</span></b> Jon Ide
[mailto:
Click here to reveal e-mail address
] <br>
<b><span style=3D'font-weight:bold'>Sent:</span></b> Monday, April 01, =
2002 12:20
PM<br>
<b><span style=3D'font-weight:bold'>To:</span></b> aspngescalate<br>
<b><span style=3D'font-weight:bold'>Subject:</span></b> [aspngescalate] =
RE: NOT
ANSWERED passing ref by ref in C#</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 =
face=3DVerdana><span
style=3D'font-size:10.0pt'> </span></font></p>
<p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 =
color=3Dnavy face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial;color:navy'>Bryan,</span></fo=
nt></p>
<p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 =
color=3Dnavy face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial;color:navy'> </span></fo=
nt></p>
<p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 =
color=3Dnavy face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial;color:navy'>I tried doing =
the ref to
a ref and it worked just fine for me. My code is:</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 =
color=3Dnavy face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial;color:navy'> </span></fo=
nt></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
<font color=3Dblue><span style=3D'color:blue'>public</span></font> <font
color=3Dblue><span style=3D'color:blue'>class</span></font> =
MyClass</span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
{</span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
<font color=3Dblue><span style=3D'color:blue'>public</span></font> =
MyClass(<font
color=3Dblue><span style=3D'color:blue'>string</span></font> =
str)</span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
{</span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'>
m_str =3D str;</span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
}</span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'> </span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
<font color=3Dblue><span style=3D'color:blue'>string</span></font> =
m_str;</span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
}</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 =
color=3Dnavy face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial;color:navy'> </span></fo=
nt></p>
<p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 =
color=3Dnavy face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial;color:navy'>< Windows =
Application code
omitted... ></span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'> </span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
<font color=3Dblue><span style=3D'color:blue'>private</span></font> =
<font
color=3Dblue><span style=3D'color:blue'>void</span></font> =
button1_Click(<font
color=3Dblue><span style=3D'color:blue'>object</span></font> sender,
System.
EventArgs
e)</span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
{</span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'>
MyClass class1 =3D <font color=3Dblue><span =
style=3D'color:blue'>new</span></font>
MyClass("foo");</span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'>
FooBar1(<font color=3Dblue><span style=3D'color:blue'>ref</span></font> =
class1);</span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
}</span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'> </span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
<font color=3Dblue><span style=3D'color:blue'>private</span></font> =
<font
color=3Dblue><span style=3D'color:blue'>void</span></font> FooBar1(<font
color=3Dblue><span style=3D'color:blue'>ref</span></font> MyClass =
mc)</span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
{</span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'>
FooBar2(<font color=3Dblue><span style=3D'color:blue'>ref</span></font> =
mc);</span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
}</span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'> </span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
<font color=3Dblue><span style=3D'color:blue'>private</span></font> =
<font
color=3Dblue><span style=3D'color:blue'>void</span></font> FooBar2(<font
color=3Dblue><span style=3D'color:blue'>ref</span></font> MyClass =
mc)</span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
{</span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'>
mc =3D <font color=3Dblue><span style=3D'color:blue'>new</span></font>
MyClass("bar");</span></font></p>
<p class=3DMsoNormal =
style=3D'margin-left:.5in;text-autospace:none'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
}</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 =
color=3Dnavy face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial;color:navy'> </span></fo=
nt></p>
<p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 =
color=3Dnavy face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial;color:navy'>The compiler =
didn't
complain, and the object was modified as expected. Am I missing the =
point?</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 =
color=3Dnavy face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial;color:navy'> </span></fo=
nt></p>
<div>
<p class=3DMsoAutoSig style=3D'margin-left:.5in'><font size=3D2 =
color=3Dnavy
face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial;color:navy'>Jon =
Ide</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 =
color=3Dnavy
face=3DVerdana><span =
style=3D'font-size:10.0pt;color:navy'> </span></font></p>
</div>
<p class=3DMsoNormal style=3D'margin-left:1.0in'><font size=3D2 =
face=3DTahoma><span
style=3D'font-size:10.0pt;font-family:Tahoma'>-----Original =
Message-----<br>
<b><span style=3D'font-weight:bold'>From:</span></b> Bryan Costanich =
(Excell Data
Corporation) [mailto:
Click here to reveal e-mail address
] <br>
<b><span style=3D'font-weight:bold'>Sent:</span></b> Monday, April 01, =
2002 11:02
AM<br>
<b><span style=3D'font-weight:bold'>To:</span></b> aspngescalate<br>
<b><span style=3D'font-weight:bold'>Subject:</span></b> [aspngescalate] =
NOT
ANSWERED passing ref by ref in C#</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.0in'><font size=3D2 =
face=3DVerdana><span
style=3D'font-size:10.0pt'> </span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.0in'><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'>Ok, so I have a wrapper =
function
that essentially does the following:</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.0in'><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'> </span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'>public void =
DoSomething(ref
Object Param1)</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'>{</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'>
SomeOtherFunction(ref Param1);</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'>}</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.0in'><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'> </span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.0in'><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'>Of course, since .net lacks =
double
pointers, when you do this you get the error of Param1 must be an IValue =
(can't
pass a ref to a ref..)</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.0in'><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'> </span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.0in'><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'>So I do the =
following:</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.0in'><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'> </span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'>public void =
DoSomething(ref
Object Param1)</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'>{</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'> Object =
objTemp =3D
Param1;</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'>
SomeOtherFunction(ref objTemp);</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'> Param1 =
=3D
objTemp;</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.7in'><font size=3D1 =
face=3D"Courier New"><span
style=3D'font-size:8.0pt;font-family:"Courier New"'>}</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.0in'><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'> </span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.0in'><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'>of course now I have 3x the
operations, AND I'm using memory... Is there any way around this =
in
.NET?? &Of or something??</span></font></p>
<p class=3DMsoNormal style=3D'margin-left:1.0in'><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'> </span></font></p>
<p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D3 =
face=3D"Times New Roman"><span
style=3D'font-size:12.0pt;font-family:"Times New Roman"'>| =
[aspngescalate] member
Click here to reveal e-mail address
=3D YOUR ID |
http://www.asplists.com/asplists/aspngescalate.asp
=3D JOIN/QUIT =
</span></font></p>
</div>
</body>
</html>
=00
------_=_NextPart_001_01C1D9BE.6C16ADA6--
--------------InterScan_NT_MIME_Boundary--
Reply to this message...
System.EventArgs
Ad
MBR BootFX
Best-of-breed application framework for .NET projects, developed by Matthew Baxter-Reynolds and MBR IT
Copyright © Matthew Baxter-Reynolds 2001-2008. '.NET 247 Software Development Services' is a trading style of MBR IT Solutions Ltd.
Contact Us
-
Terms of Use
-
Privacy Policy
-
www.dotnet247.com