Example #1
0
        public GraphFunction GetFunction(Func3DEnum func)
        {
            if (!funcDic.ContainsKey(func))
            {
                try
                {
                    // 动态生成枚举对应的函数委托,并添加到字典中
                    GraphFunction function =
                        (GraphFunction)Delegate.CreateDelegate(typeof(GraphFunction), this, func.ToString());
                    funcDic.Add(func, function);
                }
                catch (ArgumentException)
                {
                    Debug.Log("无法加载函数:" + func);
                }
            }

            return(funcDic[func]);
        }
Example #2
0
        /*
         * 三维函数调用接口,生成三维图形
         */
        public Vector3 Func3D(float u, float v, Func3DEnum func)
        {
            // 用委托的方法实现根据枚举执行对应函数,函数可以是静态的,还可以是私有的
            if (!funcDic.ContainsKey(func))
            {
                try
                {
                    // 动态生成枚举对应的函数委托,并添加到字典中
                    GraphFunction function =
                        (GraphFunction)Delegate.CreateDelegate(typeof(GraphFunction), this, func.ToString());
                    funcDic.Add(func, function);
                }
                catch (ArgumentException)
                {
                    Debug.Log("无法加载函数:" + func);
                }
            }

            return(funcDic[func](u, v));
        }