RE: How to swap two variable later?
From: tony lock (tonylock_at_discussions.microsoft.com)
Date: 10/01/04
- Next message: Willy Denoyette [MVP]: "Re: Bug in System.Timers.Timer class"
- Previous message: Piotrek Stachowicz: "combobox"
- In reply to: Jongmin Lee: "How to swap two variable later?"
- Next in thread: Marcin Grzębski: "Re: How to swap two variable later?"
- Messages sorted by: [ date ] [ thread ]
Date: Fri, 1 Oct 2004 02:49:10 -0700
Object variables are pointers, the problem is you cannot manipulate the
contents of a string only create a new one. The following wraps the string in
a new object which then behaves the way you expect. It is similar to James
Curran's solution, but perhaps closer to what you want.
namespace Test
{
class MyClass
{
[STAThread]
static void Main(string[] args)
{
StringObj mainA, mainB;
mainA = new StringObj("A");
mainB = new StringObj("B");
Swap swapCommand = new Swap(mainA, mainB);
Console.WriteLine(mainA.ObjString);// Print "A"
Console.WriteLine(mainB.ObjString);// Print "B"
swapCommand.Do(); // Swap take place here...
Console.WriteLine(mainA.ObjString);//want to Print "B" not A
Console.WriteLine(mainB.ObjString);//want to print "A" not B
}
}
public class Swap
{
StringObj _A;
StringObj _B;
public Swap(StringObj a, StringObj b)
{
_A = a;
_B = b;
}
public void Do()
{
string temp;
temp = _A.ObjString;
_A.ObjString = _B.ObjString;
_B.ObjString = temp;
}
}
public class StringObj
{
string _A;
public StringObj(string a)
{
_A = a;
}
public string ObjString
{
get{ return _A;}
set{ _A = value;}
}
}
}
"Jongmin Lee" wrote:
> Hi Everybody,
>
> I have very simple code snippet to explain my problem.
>
> Class "Swap" is construncted in "Main" with two initial
> variables.
> Later, "Swap" class is going to swap those two variables.
>
> How to implement this Swap Class?
> Because C# doesn't have pointer, I can't do.
> Please give me any idea....
>
> Thanks,
> Jongmin
>
>
> //
> using System;
> using System.Collections;
>
> namespace Test
> {
> public class MyClass
> {
> public static void Main()
> {
> string mainA, mainB;
> mainA = "A";
> mainB = "B";
>
> Swap swapCommand = new Swap(mainA, mainB);
> Console.WriteLine(mainA);// Print "A"
> Console.WriteLine(mainA);// Print "B"
>
> swapCommand.Do(); // Swap take plase here...
> Console.WriteLine(mainA);//want to Print "B" not A
> Console.WriteLine(mainA);//wnat to print "A" not B
> }
> }
>
> public class Swap
> {
> string _A;
> string _B;
>
> public Swap(string a, string b)
> {
> _A = a;
> _B = b;
> }
>
> public void Do()
> {
> string temp;
> temp = _A;
>
> _A = _B;
> _B = temp;
> }
> }
> }
>
- Next message: Willy Denoyette [MVP]: "Re: Bug in System.Timers.Timer class"
- Previous message: Piotrek Stachowicz: "combobox"
- In reply to: Jongmin Lee: "How to swap two variable later?"
- Next in thread: Marcin Grzębski: "Re: How to swap two variable later?"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|