Пример #1
0
            static void F(int m)
            {
                // 作られるインスタンスは1つだけ
                var anonymous = new AnonymousClass();

                anonymous.m = m;

                Action <int> a = anonymous.A;
                Action <int> b = anonymous.B;
                Action <int> c = anonymous.C;

                Invoke(a, b, c);
            }
Пример #2
0
        void NewWay()
        {
            var graph    = new Graph <IVertice>();
            var allItems = ReadDatabase.Instance.FindAll();

            var groupedByClass = allItems.GroupBy(
                x => new { x.ClassName, x.Name },
                (key, group) =>
            {
                var @class       = new AnonymousClass();
                @class.ClassName = key.ClassName;
                @class.Name      = key.Name;
                @class.Items     = @group.ToList();
                return(@class);
            });

            HashSet <ClassRelationship> classRelSet = new HashSet <ClassRelationship>();

            Random rnd = new Random();

            foreach (var item in groupedByClass)
            {
                var             verticeName = item.ClassName + ":" + item.Name;
                var             color       = Color.FromArgb((byte)rnd.Next(255), (byte)rnd.Next(255), (byte)rnd.Next(255), (byte)rnd.Next(255));
                SolidColorBrush solid       = new SolidColorBrush(color);
                var             el          = new LogItemVetice(graph)
                {
                    ClassName = item.ClassName, MethodName = item.Name, ItemColor = solid
                };
                graph.AddVertex(el);

                foreach (var logItem in item.Items)
                {
                    var classRel = new ClassRelationship(logItem);
                    if (!classRelSet.Contains(classRel))
                    {
                    }
                    else
                    {
                    }
                }
            }
            this.Graph          = graph;
            this.Graph.Changed += GraphChanged;
        }
Пример #3
0
        public ulong GetHash()
        {
            ulong hashCode = 0uL;

            unchecked
            {
                if (NewArguments != null)
                {
                    for (int i = NewArguments.Length; i != 0;)
                    {
                        hashCode += 1000000007 * (ulong)i * NewArguments[--i].GetHash();
                    }
                }
                if (AnonymousClass != null)
                {
                    hashCode += 1000000009 * (ulong)AnonymousClass.GetHashCode();
                }
                for (int i = ClassArguments.Length; i != 0;)
                {
                    hashCode += 1000000021 * (ulong)i * ClassArguments[--i].GetHash();
                }
            }
            return(hashCode);
        }