CSLE.CLS_Content.Set C# (CSharp) Метод

Set() публичный Метод

public Set ( string name, object value ) : void
name string
value object
Результат void
        public void Set(string name,object value)
        {
            Value retV = null;
            bool bFind = values.TryGetValue(name, out retV);
            if (!bFind)
            {
                if (CallType != null)
                {
                    SType.Member retM = null;
                    bool bRet = CallType.members.TryGetValue(name, out retM);
                    if (bRet)
                    {
                        if (retM.bStatic)
                        {
                            CallType.staticMemberInstance[name].value=value;
                        }
                        else
                        {
                            CallThis.member[name].value=value;
                        }
                        return;
                    }

                }
                string err = CallType.Name + "\n";
                foreach(var m in CallType.members)
                {
                    err += m.Key + ",";
                }
                throw new Exception("值没有定义过" + name + "," + err);

            }
            if ((Type)retV.type == typeof(CLS_Type_Var.var) && value != null)
                retV.type = value.GetType();
            retV.value = value;
        }

Usage Example

        public CLS_Content.Value ComputeValue(CLS_Content content)
        {
            content.InStack(this);
            content.DepthAdd();

            CLS_Content.Value vrt = null;

            CLS_Expression_Define define = listParam[0] as CLS_Expression_Define;
            define.ComputeValue(content);

            IEnumerator it = (listParam[1].ComputeValue(content).value as IEnumerable).GetEnumerator();

            ICLS_Expression expr_block = listParam[2];

            while (it.MoveNext())
            {
                content.Set(define.value_name, it.Current);

                if (expr_block != null)
                {
                    CLS_Content.Value v = expr_block.ComputeValue(content);
                    if (v != null)
                    {
                        if (v.breakBlock > 2)
                            vrt = v;
                        if (v.breakBlock > 1)
                            break;
                    }
                }
            }
            content.DepthRemove();
            content.OutStack(this);
            return vrt;
        }
All Usage Examples Of CSLE.CLS_Content::Set