public static void CreateTest(int value, bool isError, Type createdInstanceType) { VariableAddress instance = null; var errorOccured = false; try { instance = VariableAddressFactory.Create(value); } catch (Exception ex) { logger.Exception(ex); errorOccured = true; } // エラーフラグが一致すること Assert.AreEqual(errorOccured, isError); if (errorOccured) { return; } // 意図した型にキャストできること Assert.AreEqual(instance.GetType(), createdInstanceType); // セットした値が正しく取得できること Assert.AreEqual(instance.ToInt(), value); }
static void Main(string[] args) { VariableAddress address = new VariableAddress(); address.Name = Console.ReadLine(); Console.WriteLine($"{address.Name}"); Console.WriteLine($"{address.Address.Country}"); Console.WriteLine($"{address.Address.Number}"); Console.WriteLine($"{address.Address.StreetName}"); }
/// <summary> /// int値をVariableAddressに変換する。 /// </summary> /// <param name="src">対象</param> /// <param name="result"> /// 変換に成功した場合、変換値。 /// 変換に失敗した場合、null。 /// </param> /// <returns>変換に成功した場合、true</returns> public static bool TryToVariableAddress(this int src, out VariableAddress result) { if (!src.IsVariableAddress()) { result = null; return(false); } result = VariableAddressFactory.Create(src); return(true); }
public void SetValue(VariableAddress addr, object val) { for (int b = blocks.Count - 1; b >= 0; --b) { if (blocks[b].values.ContainsKey(addr.Name)) { var varObj = blocks[b].values[addr.Name]; if (varObj is ValueBinding) { (varObj as ValueBinding).SetValue(val); } else { varObj = val; } blocks[b].values[addr.Name] = varObj; return; } } blocks[0].values.Add(addr.Name, val); }
public object GetValue(VariableAddress addr) { for (int b = blocks.Count - 1; b >= 0; --b) { if (blocks[b].values.ContainsKey(addr.Name)) { var varObj = blocks[b].values[addr.Name]; if (varObj is ValueBinding) { return((varObj as ValueBinding).GetValue()); } else { return(varObj); } } } Debug.Assert(false, "Unable to find variable " + addr.Name + "!"); return(null); }