Иногда для оптимизации кода и скорости работы, программисты используют разные варианты того как использовать замену значений в переменных без создания новых. В коде ниже я покажу один из способов, решения такой задачи, в примере используется целочисленные переменные.
static void Main(string[] args)
		{
			int a = 5;
			int b = 2;
			a = a + b;
			b = a - b;
			a = a - b;
			
			Console.WriteLine("a= " + a);
			Console.WriteLine("b= " + b);
			
			Console.ReadKey();
			
		}
Так же возможен вариант с использованием ссылок:
 string  a = "5";
		 string  b = "3";
		void test()
		{
			Program p = new Program();
			b = p.a;
			a = p.b;
			Console.WriteLine("a= " + a);
			Console.WriteLine("b= " + b);
		}
		static void Main(string[] args)
		{
			Program p = new Program();
			p.test();
			Console.ReadKey();
			
		}
Еще один вариант с использованием метода:
	static void Swap<T>(ref T lhs, ref T rhs)
		{
			T temp;
			temp = lhs;
			lhs = rhs;
			rhs = temp;
		}
		static void Main(string[] args)
		{
			int a = 5;
			int b = 3;
			Swap<int>(ref a, ref b);
			System.Console.WriteLine("a= "+ a);
			System.Console.WriteLine("b= "+ b);
			Console.ReadKey();
			
		}
