clojure.lang.Var.get C# (CSharp) Метод

get() приватный Метод

private get ( ) : object
Результат object
        public object get()
        {
            if (!_threadBound.get())
                return _root;
            return deref();
        }

Usage Example

Пример #1
0
        public static void AddClojureSlider(string labelText, Var variable, double min, double max, int divisor, IFn func)
        {
            double variableVal = 0;
            string variableSymbolName = variable.sym.Name;

            Label label = new Label();
            label.AutoSize = true;
            label.Text = labelText;

            if (!double.TryParse(variable.get().ToString(), out variableVal))
            {
                label.Text = "Error: Could not convert variable '" + variableSymbolName + "' value of '" + variable.get().ToString() + "' to a numeric type";
                self.AddNewClojureControl(label);
                return;
            }

            int iMin = (int)Math.Round(min * divisor);
            int iMax = (int)Math.Round(max * divisor);
            int iValue = (int)Math.Round(variableVal * divisor);

            NumericUpDown numericUpDown = new NumericUpDown();
            TrackBar trackbar = new TrackBar();
            bool disableNumbericUpDownUpdate = false;

            trackbar.AutoSize = false;
            trackbar.Width = 128;
            trackbar.Height = 24;
            trackbar.Minimum = iMin;
            trackbar.Maximum = iMax;
            trackbar.Value = iValue;
            trackbar.ValueChanged += (s, e) =>
            {
                double tbVal = (double)trackbar.Value / divisor;
                ClojureEngine.Eval("(def " + variableSymbolName + " " + tbVal + ")");
                disableNumbericUpDownUpdate = true;
                numericUpDown.Value = (decimal)tbVal;
                disableNumbericUpDownUpdate = false;

                if (func != null)
                {
                    try
                    {
                        object res = func.invoke();
                        ClojureEngine.Log(res);
                    }
                    catch (Exception ex)
                    {
                        ClojureEngine.Log(ex.ToString());
                    }
                }
            };

            Label valLabel = new Label();
            valLabel.AutoSize = true;
            valLabel.Text = "Value: ";

            numericUpDown.DecimalPlaces = (int)Math.Log10(divisor) + 1;
            numericUpDown.Minimum = (decimal)min;
            numericUpDown.Maximum = (decimal)max;
            numericUpDown.Value = (decimal)trackbar.Value / divisor;
            numericUpDown.ValueChanged += (s, e) =>
            {
                if (disableNumbericUpDownUpdate)
                    return;

                trackbar.Value = (int)(numericUpDown.Value * divisor);
            };

            Label minmaxLabel = new Label();
            minmaxLabel.AutoSize = true;
            minmaxLabel.Text = "Min: " + min + ", Max: " + max;

            self.AddNewClojureControls(new Control[] { label, trackbar, valLabel, numericUpDown, minmaxLabel });
        }
All Usage Examples Of clojure.lang.Var::get