示例#1
0
        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);
        }
示例#2
0
        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}'");
            }
        }