示例#1
0
        public T GetVariableValueInternal <T>(string name)
        {
            //TODO:@muhammet burada vb de ref vardı c# karşılık yap.
            GenericVariable <T> result = new GenericVariable <T>();

            if (_myVariables.ContainsKey(name))
            {
                result.ValueAsObject = _myVariables[name].ValueAsObject;
                return((T)result.GetValue());
            }
            //if (MyVariables.TryGetValue(name, out v))
            //{
            //    return v.GetValue();
            //}

            GenericVariable <T>           vTemp = new GenericVariable <T>();
            ResolveVariableValueEventArgs args  = new ResolveVariableValueEventArgs(name, typeof(T));

            ResolveVariableValue?.Invoke(this, args);

            ValidateSetValueType(typeof(T), args.VariableValue);
            vTemp.ValueAsObject = args.VariableValue;
            result = vTemp;
            return((T)result.GetValue());
        }
        public T GetVariableValueInternal <T>(string name)
        {
            if (_myVariables.TryGetValue(name, out IVariable variable))
            {
                if (variable is IGenericVariable <T> generic)
                {
                    return((T)generic.GetValue());
                }
            }

            GenericVariable <T>           result = new GenericVariable <T>();
            GenericVariable <T>           vTemp  = new GenericVariable <T>();
            ResolveVariableValueEventArgs args   = new ResolveVariableValueEventArgs(name, typeof(T));

            ResolveVariableValue?.Invoke(this, args);

            ValidateSetValueType(typeof(T), args.VariableValue);
            vTemp.ValueAsObject = args.VariableValue;
            result = vTemp;
            return((T)result.GetValue());
        }