public T GetResult <T>(string name) { ExpressionResultPair tail = this.GetTailWithValidate(name); if ((!object.ReferenceEquals(typeof(T), tail.ResultType))) { string msg = $"The result type of '{name}' ('{tail.ResultType.Name}') does not match the supplied type argument ('{typeof(T).Name}')"; throw new ArgumentException(msg); } GenericExpressionResultPair <T> actualTail = (GenericExpressionResultPair <T>)tail; return(actualTail.Result); }
private void AddTemporaryHead(string headName) { GenericExpressionResultPair <int> pair = new GenericExpressionResultPair <int>(); pair.SetName(headName); if (_myNameNodeMap.ContainsKey(headName) == false) { _myDependencies.AddTail(pair); _myNameNodeMap.Add(headName, pair); } else { throw new ArgumentException($"An expression already exists at '{headName}'"); } }