Imports System Imports uCalcSoftware Public Module Program Public Sub Main() Dim uc As New uCalc() '// Define a variable in the original default to distinguish it. '// Note: This variable won't exist in the implicit 'uc' instance. uCalc.DefaultInstance.DefineVariable("id='Original'") Console.WriteLine($"Initial default: {uCalc.DefaultInstance.EvalStr("id")}") Dim ucA As New uCalc() ucA.DefineVariable("id='A'") ucA.IsDefault = true '// Default stack: [Original, A] Console.WriteLine($"Current default: {uCalc.DefaultInstance.EvalStr("id")}") Dim ucB As New uCalc() ucB.DefineVariable("id='B'") ucB.IsDefault = true '// Default stack: [Original, A, B] Console.WriteLine($"Current default: {uCalc.DefaultInstance.EvalStr("id")}") Dim ucC As New uCalc() ucC.DefineVariable("id='C'") ucC.IsDefault = true '// Default stack: [Original, A, B, C] Console.WriteLine($"Current default: {uCalc.DefaultInstance.EvalStr("id")}") Console.WriteLine("--- Unsetting instances ---") '// Unset B. The default should remain C. ucB.IsDefault = false Console.WriteLine($"After unsetting B, current default: {uCalc.DefaultInstance.EvalStr("id")}") '// Unset C. The default should revert to A. ucC.IsDefault = false Console.WriteLine($"After unsetting C, current default: {uCalc.DefaultInstance.EvalStr("id")}") '// Unset A. Reverts to the original default. ucA.IsDefault = false Console.WriteLine($"After unsetting A, current default: {uCalc.DefaultInstance.EvalStr("id")}") End Sub End Module