public static void GetQuantityTwo() { // get a random quantity UseUnionType.Quantity q = UseUnionType.getRandomQuantity(); // use if ... else chain to display value if (q.IsDiscrete) { Console.WriteLine("Discrete value: {0}", ((UseUnionType.Quantity.Discrete)q).Item); } else if (q.IsContinuous) { Console.WriteLine("Continuous value: {0}", ((UseUnionType.Quantity.Continuous)q).Item); } }
public static void GetQuantityZero() { // initialize both a Discrete and Continuous quantity /* you cannot do the following, but * * UseUnionType.Quantity d = UseUnionType.Quantity.Discrete(12); * UseUnionType.Quantity c = UseUnionType.Quantity.Continuous(12.0); * */ /* but you are allowed to do the following */ UseUnionType.Quantity d = UseUnionType.Quantity.NewDiscrete(12); UseUnionType.Quantity c = UseUnionType.Quantity.NewContinuous(12.0); }
public static void GetQuantityOne() { // get a random quantity UseUnionType.Quantity q = UseUnionType.getRandomQuantity(); // switch the .Tag property to switch over the quantity switch (q.Tag) { case UseUnionType.Quantity.Tags.Discrete: //Console.WriteLine("Discrete value: {0}", UseUnionType.Quantity.Tags.Discrete); Console.WriteLine("Discrete value: {0}", ((UseUnionType.Quantity.Discrete)q).Item); break; case UseUnionType.Quantity.Tags.Continuous: //Console.WriteLine("Continuous value: {0}", q.ToString()); Console.WriteLine("Continous value: {0}", ((UseUnionType.Quantity.Continuous)q).Item); break; } }