Как поменять значение двух переменных, местами без создания третьей?

Иногда для оптимизации кода и скорости работы, программисты используют разные варианты того как использовать замену значений в переменных без создания новых. В коде ниже я покажу один из способов, решения такой задачи, в примере используется целочисленные переменные.

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();
			
		}

 

Обновлено: 19.10.2017 — 18:15

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.