using uCalcSoftware;

var uc = new uCalc();
var MyVar1 = uc.DefineVariable("MyVar1 = 123.456");
var MyVar2 = uc.DefineVariable("MyVar2 = 654.321");
var MyStr1 = uc.DefineVariable("MyStr1 = 'First string'");
var MyStr2 = uc.DefineVariable("MyStr2 = 'Second string'");

Console.WriteLine(uc.EvalStr("MyVar1"));
Console.WriteLine(uc.EvalStr("MyVar2"));
Console.WriteLine(uc.EvalStr("MyStr1"));
Console.WriteLine(uc.EvalStr("MyStr2"));
Console.WriteLine("---");

uc.DataTypeOf("double").SwapScalarValues(MyVar1.ValueAddr(), MyVar2.ValueAddr());
uc.DataTypeOf("string").SwapScalarValues(MyStr1.ValueAddr(), MyStr2.ValueAddr());

Console.WriteLine(uc.EvalStr("MyVar1")); // Values of MyVar1 and MyVar2 are now swapped
Console.WriteLine(uc.EvalStr("MyVar2"));
Console.WriteLine(uc.EvalStr("MyStr1")); // Values of MyStr1 and MyStr2 are now swapped
Console.WriteLine(uc.EvalStr("MyStr2"));