Example #1
0
        private CustomListRow AddRow <T>(CustomListRow parent, string key, T obj, ToStringDelegate <T> del, bool valueBold) where T : IEquatable <T>
        {
            CustomListRow row = CreateNewRow <T>(key + ": ", new ToStringWrapper <T>(obj, del), valueBold);

            parent.AddChild(row);
            return(row);
        }
Example #2
0
        public QueryLogBuffer(LibraryHandle libraryHandle)
            : base(true)
        {
            _newBuffder = libraryHandle.GetUnmanagedDelegate<NewBufferDelegate>();
            _delete = libraryHandle.GetUnmanagedDelegate<DeleteBufferDelegate>();
            _size = libraryHandle.GetUnmanagedDelegate<GetSizeDelegate>();
            _toString = libraryHandle.GetUnmanagedDelegate<ToStringDelegate>();

            handle = _newBuffder();
        }
Example #3
0
        /// <summary>
        /// Checks to see whether the provided object has a ToString() override method
        /// </summary>
        /// <param name="instance">The object to check</param>
        private bool OverridesToString(object instance)
        {
            if (instance == null)
            {
                return(false);
            }

            ToStringDelegate test = instance.ToString;

            return(test.Method.DeclaringType == instance.GetType());
        }
Example #4
0
        private static void Main(string[] args)
        {
            //ConnectAzureRepos();

            ToStringDelegate toString = PrintToString;

            Student Biggo = new Student("Biggo");
            Dog     Bingo = new Dog(45);


            toString(Bingo);
            toString(Biggo);


            PrintDelegate delegatedPrint = PrintInt;

            delegatedPrint(32);


            delegatedPrint = PrintMoney;

            //can also be called with the Invoke Method
            delegatedPrint.Invoke(45);

            PrintHelper(delegatedPrint, 7000);
            delegatedPrint = PrintInt;
            PrintHelper(delegatedPrint, 7000);

            //multicast delegates
            PrintDelegate multiPrintDelegate = PrintInt;

            multiPrintDelegate += PrintMoney;
            multiPrintDelegate += PrintHexadecimal;

            //call the delegate and all the methods associated with it
            multiPrintDelegate(500);

            //multiCast multiplication
            MathDelegate delegatedMath = Add;

            delegatedMath += Subtract;
            delegatedMath += Multiply;
            delegatedMath += Divide;

            delegatedMath(500, 2);

            PairDelegate();


            Console.ReadLine();
        }
Example #5
0
        /// <summary>
        /// Добавление новой категории в список по делегату для сравнения.
        /// </summary>
        /// <typeparam name="TD">Тип Dat-класса (BaseDat&lt;TD&gt;)</typeparam>
        /// <typeparam name="TS">Тип Set-класса (BaseSet&lt;TD,TS&gt;)</typeparam>
        /// <param name="text">Видимое название категории</param>
        /// <param name="tostring">Делегат string ToStringDelegate&lt;TD&gt;(TD value).
        /// Пример: delegate(TestDat val){return val.Date.ToShortDateString();}
        /// </param>
        /// <param name="compare">Делегат для сравнения двух Dat-классов int Comparison&lt;TD&gt;(TD dat).
        /// При помощи делегата можно сравнить два Dat-класса по любому признаку.
        /// По этому признаку будет отсортирован массив значений, и затем будет работать фильтр.
        /// Пример:delegate(TestDat dat1, TestDat dat2){return DateTime.Compare(dat1.Date.Date, dat2.Date.Date);}
        /// В этом примере будет построен список по датам без учета времени.
        /// </param>
        /// <returns>Ссылку на TreeNode с созданной категорией</returns>
        public TreeNode AddGroup <TD, TS>(string text, ToStringDelegate <TD> tostring, Comparison <TD> compare)
            where TS : BaseSet <TD, TS>, new()
            where TD : BaseDat <TD>, new()
        {
            TS        set              = SetClass as TS;
            const int docImageIndex    = 0;
            const int folderImageIndex = 1;

            inCheckingMode = true;

            TreeNode root = new TreeNode(text);

            root.Name               = "";
            root.Tag                = compare;
            root.ImageIndex         = folderImageIndex;
            root.SelectedImageIndex = folderImageIndex;

            Nodes.Add(root);

            //List<TD> list = set.ConvertType<TD>();
            //list.Sort(compare);
            set.Sort(compare);

            List <TreeNode> nodes = new List <TreeNode>();
            TD prev = null;

            foreach (TD dat in set)
            {
                if (prev == null || compare(prev, dat) != 0)
                {
                    TreeNode node = new TreeNode(tostring(dat));
                    node.Tag                = dat;
                    node.ImageIndex         = docImageIndex;
                    node.SelectedImageIndex = docImageIndex;
                    node.Checked            = true;
                    nodes.Add(node);

                    prev = dat;
                }
            }

            if (nodes.Count > 0)
            {
                root.Nodes.AddRange(nodes.ToArray());
            }
            root.Checked   = true;
            inCheckingMode = false;
            return(root);
        }
        public XGMidiParameter(XGMidiIODevice host, string name, int address, int count, int min, int max, int center)
        {
            this.Host    = host;
            this.Name    = name;
            this.Address = address;
            this.Count   = count;

            this.MinValue    = min;
            this.MaxValue    = max;
            this.CenterValue = center;

            this.ToStringConverter  = DefaultToString;
            this.WriteValueEncoding = v => v;
            this.ReadValueEncoding  = v => v;
        }
        public static string RunToString <T>(T target)
        {
            ToStringDelegate <T> toString = null;

            Type targetType = target.GetType();

            if (ToStringDynamicMethod.toStrings.ContainsKey(targetType))
            {
                toString = ToStringDynamicMethod.toStrings[targetType] as ToStringDelegate <T>;
            }
            else
            {
                toString = ToStringDynamicMethod.CreateToString(target);
                ToStringDynamicMethod.toStrings.Add(targetType, toString);
            }

            return(toString(target));
        }
        public static string RunToString <T>(T target)
        {
            ToStringDelegate <T> toString = null;

            var targetType = target.GetType();

            if (toStrings.ContainsKey(targetType))
            {
                toString = toStrings[targetType] as ToStringDelegate <T>;
            }
            else
            {
                toString = CreateToString(target);
                toStrings.Add(targetType, toString);
            }

            return(toString(target));
        }
Example #9
0
        public unsafe QueryFunctions(LibraryHandle handle)
        {
            Create = handle.GetUnmanagedDelegate <CreateQueryDelegate>();

            Delete = handle.GetUnmanagedDelegate <DeleteQueryDelegate>();

            Execute      = handle.GetUnmanagedDelegate <ExecuteQueryDelegate>();
            DeleteCursor = handle.GetUnmanagedDelegate <DeleteCursorDelegate>();

            SetHints = handle.GetUnmanagedDelegate <SetHintsDelegate>();
            AddOr    = handle.GetUnmanagedDelegate <AddOrDelegate>();

            CursorResult = handle.GetUnmanagedDelegate <CursorResultDelegate>();

            NewBuffer      = handle.GetUnmanagedDelegate <QueryFunctions.NewBufferDelegate>();
            DeleteBuffer   = handle.GetUnmanagedDelegate <QueryFunctions.DeleteBufferDelegate>();
            BufferSize     = handle.GetUnmanagedDelegate <GetSizeDelegate>();
            BufferToString = handle.GetUnmanagedDelegate <ToStringDelegate>();
        }
        public XGMultiEQParams(XGMidiIODevice host)
            : base(host, "MULTI EQ", 0x024000)
        {
            bandParams = new BandParameter[5];

            ToStringDelegate dBStringFunc = XGMidiParameter.MakePlusMinusToStringFunc("-", "dB", "+0dB", "+", "dB", null);
            ToStringDelegate QStringFunc  = v => (v * 0.1).ToString("0.0");

            Type          = AddParameter("Type", 0, 0, 4, 0, XGMidiParameter.MakeTableToStringFunc("FLAT", "JAZZ", "POPS", "ROCK", "CLASSIC"));
            Gain1         = AddParameter("Gain1", 1, 0x34, 0x4C, 0x40, dBStringFunc);
            Freq1         = AddParameter("Freq1", 2, 0x04, 0x28, 0x04, XGMidiParameter.FreqToString);
            Q1            = AddParameter("Q1", 3, 0x01, 0x78, 0x07, QStringFunc);
            Shape1        = AddParameter("Shape1", 4, 0, 1, 0, XGMidiParameter.MakeTableToStringFunc("SHELVING", "PEAKING"));
            bandParams[0] = new BandParameter(Gain1, Freq1, Q1, Shape1, null);

            Gain2         = AddParameter("Gain2", 5, 0x34, 0x4C, 0x40, dBStringFunc);
            Freq2         = AddParameter("Freq2", 6, 0x0E, 0x36, 0x0E, XGMidiParameter.FreqToString);
            Q2            = AddParameter("Q2", 7, 0x01, 0x78, 0x07, QStringFunc);
            bandParams[1] = new BandParameter(Gain2, Freq2, Q2, null, null);

            Gain3         = AddParameter("Gain3", 9, 0x34, 0x4C, 0x40, dBStringFunc);
            Freq3         = AddParameter("Freq3", 10, 0x0E, 0x36, 0x0E, XGMidiParameter.FreqToString);
            Q3            = AddParameter("Q3", 11, 0x01, 0x78, 0x07, QStringFunc);
            bandParams[2] = new BandParameter(Gain3, Freq3, Q3, null, null);

            Gain4         = AddParameter("Gain4", 13, 0x34, 0x4C, 0x40, dBStringFunc);
            Freq4         = AddParameter("Freq4", 14, 0x0E, 0x36, 0x0E, XGMidiParameter.FreqToString);
            Q4            = AddParameter("Q4", 15, 0x01, 0x78, 0x07, QStringFunc);
            bandParams[3] = new BandParameter(Gain4, Freq4, Q4, null, null);

            Gain5         = AddParameter("Gain5", 17, 0x34, 0x4C, 0x40, dBStringFunc);
            Freq5         = AddParameter("Freq5", 18, 0x1C, 0x3A, 0x1C, XGMidiParameter.FreqToString);
            Q5            = AddParameter("Q5", 19, 0x01, 0x78, 0x07, QStringFunc);
            Shape5        = AddParameter("Shape5", 20, 0, 1, 0, XGMidiParameter.MakeTableToStringFunc("SHELVING", "PEAKING"));
            bandParams[4] = new BandParameter(Gain5, Freq5, Q5, null, Shape5);

            Bands = new ReadOnlyCollection <BandParameter>(bandParams);
        }
Example #11
0
        public static void Run()
        {
            Console.WriteLine(nameof(TestByRefLikeTypeMethod));

            // Ensure things we reflect on are in the static callgraph
            if (string.Empty.Length > 0)
            {
                default(ByRefLike).ToString();
                ToStringDelegate s = null;
                s = s.Invoke;
            }

            Type       byRefLikeType  = GetTestType(nameof(TestByRefLikeTypeMethod), nameof(ByRefLike));
            MethodInfo toStringMethod = byRefLikeType.GetMethod("ToString");
            var        toString       = (ToStringDelegate)toStringMethod.CreateDelegate(typeof(ToStringDelegate));

            ByRefLike foo = new ByRefLike(123);

            if (toString(ref foo) != "123")
            {
                throw new Exception();
            }
        }
        /// <summary>
        /// Computes a <see cref="DiscrepancyTestResult"/> for a specified property
        /// </summary>
        /// <typeparam name="T">The type of the property being tested</typeparam>
        /// <param name="x">Left operand</param>
        /// <param name="y">Right operand</param>
        /// <param name="discrepancy">Discrepancy being tested</param>
        /// <param name="getter">A delegate that returns the value of the property from a <see cref="PatientProfile"/></param>
        /// <param name="tester">A delegate that tests for equality of the property - need not be null-safe</param>
        /// <param name="toString">A delegate that converts the property to a string</param>
        /// <returns></returns>
        private static DiscrepancyTestResult GetResult <T>(PatientProfile x, PatientProfile y, PatientProfileDiscrepancy discrepancy, PropertyGetter <T> getter, TestEqual <T> tester, ToStringDelegate <T> toString)
        {
            var vx = getter(x);
            var vy = getter(y);

            if (Equals(vx, default(T)) && Equals(vy, default(T)))
            {
                return(new DiscrepancyTestResult(discrepancy, false, StringDiff.Compute("", "", true)));
            }

            if (Equals(vx, default(T)))
            {
                return(new DiscrepancyTestResult(discrepancy, true, StringDiff.Compute("", toString(vy), true)));
            }

            if (Equals(vy, default(T)))
            {
                return(new DiscrepancyTestResult(discrepancy, true, StringDiff.Compute(toString(vx), "", true)));
            }

            return(new DiscrepancyTestResult(discrepancy, !tester(vx, vy), StringDiff.Compute(toString(vx), toString(vy), true)));
        }
Example #13
0
 /// <summary>
 /// Constructs a wrapper for the given object.
 /// </summary>
 public ToStringWrapper(T value)
 {
     this.value            = value;
     this.toStringDelegate = ToStringWrapper <T> .DefaultToStringDelegate;
 }
Example #14
0
        public TreeNode AddGroup <TD, TS>(string name, ToStringDelegate prop, ToStringDelegate child, ToStringDelegate parent)
            where TS : BaseSet <TD, TS>, new()
            where TD : BaseDat <TD>, new()
        {
            List <string> chs = new List <string>();
            TreeNode      par = null;
            TreeNode      chi = null;
            TS            set = SetClass as TS;
            //DatDescriptor dd = set.GetDescriptor(prop);
            TreeNode ret = new TreeNode(name);

            ret.Checked = true;
            ret.Tag     = prop;
            foreach (TD dat in set)
            {
                string pr = parent(dat);
                if (Common.IsNullOrEmpty(pr))
                {
                    par = ret;
                }
                else
                {
                    par = null;
                    foreach (TreeNode t in ret.Nodes)
                    {
                        if (t.Text == pr)
                        {
                            par = (TreeNode)t;
                        }
                    }
                    if (par == null)
                    {
                        par = new TreeNode(pr);
                        ret.Nodes.Add(par);
                        par.Checked = true;
                    }
                }
                string ch = child(dat);
                if (Common.IsNullOrEmpty(ch))
                {
                    chi = par;
                }
                else
                {
                    chi = null;
                    foreach (TreeNode t in par.Nodes)
                    {
                        if (t.Text == ch)
                        {
                            chi = (TreeNode)t;
                        }
                    }
                    if (chi == null)
                    {
                        chi = new TreeNode(ch);
                        par.Nodes.Add(chi);
                        chi.Checked = true;
                    }
                }
                //if (dd != null)
                //{
                string val = prop(dat);
                if (!Common.IsNullOrEmpty(val) && !chs.Exists(delegate(string s) { return(s == val); }))
                {
                    TreeNode node = new TreeNode(val);
                    node.Checked = true;
                    node.Tag     = val;
                    chs.Add(val);
                    chi.Nodes.Add(node);
                }
                //}
            }
            Nodes.Add(ret);
            return(ret);
        }
Example #15
0
 /// <summary>
 /// Constructs a wrapper for the given object such that the ToString
 /// returns the given string.
 /// </summary>
 public ToStringWrapper(T value, string toString)
 {
     this.value            = value;
     this.toString         = toString;
     this.toStringDelegate = this.FixedToStringDelegate;
 }
Example #16
0
        /// <summary>
        /// Добавление новой категории в список только по имени свойства.
        /// Все остальные данные берутся из дескриптора.
        /// Для свойства с этим именем нужен делегат Get_#Name#, иначе будет работать через Reflection
        /// </summary>
        /// <typeparam name="TD">Тип Dat-класса (BaseDat&lt;TD&gt;)</typeparam>
        /// <typeparam name="TS">Тип Set-класса (BaseSet&lt;TD,TS&gt;)</typeparam>
        /// <param name="name">Название свойства</param>
        /// <param name="text">Видимое название категории</param>
        /// <param name="tostring">Делегат string ToStringDelegate(object value).
        /// Пример:delegate(object val){return "Клиент " + val.ToString();});
        /// </param>
        /// <returns>Ссылку на TreeNode с созданной категорией</returns>
        public TreeNode AddGroup <TD, TS>(string name, string text, ToStringDelegate tostring)
            where TS : BaseSet <TD, TS>, new()
            where TD : BaseDat <TD>, new()
        {
            TS        set              = SetClass as TS;
            const int docImageIndex    = 0;
            const int folderImageIndex = 1;

            inCheckingMode = true;

            TreeNode root = new TreeNode(text);

            root.Name               = name;
            root.ImageIndex         = folderImageIndex;
            root.SelectedImageIndex = folderImageIndex;

            Nodes.Add(root);
            DatDescriptor dd = set.GetDescriptor(name);

            root.Tag = dd;

            SortedDictionary <string, object> dict = new SortedDictionary <string, object>();

            foreach (TD dat in set)
            {
                object val;
                if (dd != null)
                {
                    val = dd.GetValue(dat);
                }
                else
                {
                    val = "Не найден дескриптор для " + name;
                }
                string key = tostring(val);
                if (!dict.ContainsKey(key))
                {
                    if (val is IDat)
                    {
                        val = ((IDat)val).ID;
                    }
                    dict.Add(key, val);
                }
            }

            List <TreeNode> nodes = new List <TreeNode>();

            foreach (KeyValuePair <string, object> de in dict)
            {
                TreeNode node = new TreeNode(de.Key);
                node.Tag                = de.Value;
                node.ImageIndex         = docImageIndex;
                node.SelectedImageIndex = docImageIndex;
                node.Checked            = true;
                nodes.Add(node);
            }
            if (nodes.Count > 0)
            {
                root.Nodes.AddRange(nodes.ToArray());
            }
            root.Checked   = true;
            inCheckingMode = false;
            return(root);
        }
Example #17
0
 /// <summary>
 /// Constructs a wrapper for the given object such that the ToString
 /// translates to the given ToStringDelegate.
 /// </summary>
 public ToStringWrapper(T value, ToStringDelegate toStringDelegate)
 {
     this.value            = value;
     this.toStringDelegate = toStringDelegate;
 }
        protected XGMidiParameter AddParameter(string name, int offset, int min, int max, int center, ToStringDelegate valStringConverter)
        {
            XGMidiParameter p = AddParameter(name, offset, min, max, center);

            p.ToStringConverter = valStringConverter;
            return(p);
        }
 protected XGMidiParameter AddParameter(string name, int offset, int min, int max, int center, ToStringDelegate valStringConverter)
 {
     XGMidiParameter p = AddParameter(name, offset, min, max, center);
     p.ToStringConverter = valStringConverter;
     return p;
 }
        public XGMidiParameter(XGMidiIODevice host, string name, int address, int count, int min, int max, int center)
        {
            this.Host = host;
            this.Name = name;
            this.Address = address;
            this.Count = count;

            this.MinValue = min;
            this.MaxValue = max;
            this.CenterValue = center;

            this.ToStringConverter = DefaultToString;
            this.WriteValueEncoding = v => v;
            this.ReadValueEncoding = v => v;
        }
Example #21
0
 public ToStringWrapper(T item, ToStringDelegate <T> toStringDelegate)
 {
     this.item             = item;
     this.toStringDelegate = toStringDelegate;
 }
 public static string ToStringEx <T>(this IEnumerable <T> collection, string name, ToStringDelegate <T> toString)
 {
     System.Text.StringBuilder sb = new System.Text.StringBuilder(name);
     sb.Append(" = {\n");
     if (collection != null)
     {
         var iter = collection.GetEnumerator();
         while (iter.MoveNext())
         {
             sb.AppendFormat("\t{0},\n", toString(iter.Current));
         }
     }
     sb.Append("}");
     return(sb.ToString());
 }