Esempio n. 1
0
        public void GetPropertyValue_Test()
        {
            var dog = new Dog()
            {
                Foo = "test"
            };
            var v1 = LambdaExtensions.GetPropertyValue(dog, nameof(dog.Foo));

            Assert.Equal(dog.Foo, v1);

            var cat = new Cat()
            {
                Foo = 1
            };
            var v2 = LambdaExtensions.GetPropertyValue(cat, nameof(cat.Foo));

            Assert.Equal(cat.Foo, v2);

            var fish = new Fish()
            {
                Foo = "test"
            };
            var v3 = LambdaExtensions.GetPropertyValue(fish, nameof(fish.Foo));

            Assert.Equal(fish.Foo, v3);

            var persian = new Persian()
            {
                Foo = 1
            };
            var v4 = LambdaExtensions.GetPropertyValue(persian, nameof(persian.Foo));

            Assert.Equal(persian.Foo, v4);
        }
        static void Main(string[] args)
        {
            Persian kitty = new Persian();
            Persian bbomi = new Persian();

            kitty.Name  = "키티";
            kitty.Color = "하얀색";
            bbomi.Name  = "뽀미";
            bbomi.Color = "회색";

            BullDog tomy   = new BullDog();
            BullDog kaltok = new BullDog();

            tomy.Name    = "토미";
            tomy.Color   = "검은색";
            kaltok.Name  = "칼톡";
            kaltok.Color = "회백색";


            ArrayList animal = new ArrayList();

            animal.Add(kitty);
            animal.Add(bbomi);
            animal.Add(tomy);
            animal.Add(kaltok);

            for (int i = 0; i < animal.Count - 2; i++)
            {
                Console.WriteLine(((Cat)animal[i]).Name);
            }
            for (int i = 2; i < animal.Count; i++)
            {
                Console.WriteLine(((Dog)animal[i]).Name);
            }


            List <Cat> catList = new List <Cat>();

            catList.Add(kitty);
            catList.Add(bbomi);
            foreach (Cat c in catList)
            {
                Console.WriteLine($"{c.Name} : {c.Color}");
            }


            Stack <Dog> dogStack = new Stack <Dog>();

            dogStack.Push(tomy);
            dogStack.Push(kaltok);

            for (int i = 0; i <= dogStack.Count; i++)
            {
                Console.WriteLine((dogStack.Pop()).Name);
            }
        }
Esempio n. 3
0
        private void OnDateChanged(DateTimeValue x)
        {
            HasValue = true;

            DateTime date = DateTime.Now;

            if (1 == 0)
            {
            }
            else if (x is PersianDateValue)
            {
                date = Persian.ToDateTime();
            }
            else if (x is GregorianDateValue)
            {
                date = Gregorian.ToDateTime();
            }
            else if (x is HijriDateValue)
            {
                date = Hijri.ToDateTime();
            }

            if (persian != null && !(x is PersianDateValue))
            {
                Persian.DateChanged -= OnDateChanged;
                Persian.Read(date);
            }
            if (gregorian != null && !(x is GregorianDateValue))
            {
                Gregorian.DateChanged -= OnDateChanged;
                Gregorian.Read(date);
            }
            if (hijri != null && !(x is HijriDateValue))
            {
                Hijri.DateChanged -= OnDateChanged;
                Hijri.Read(date);
            }

            if (persian != null && !(x is PersianDateValue))
            {
                Persian.DateChanged += OnDateChanged;
            }
            if (gregorian != null && !(x is GregorianDateValue))
            {
                Gregorian.DateChanged += OnDateChanged;
            }
            if (hijri != null && !(x is HijriDateValue))
            {
                Hijri.DateChanged += OnDateChanged;
            }
        }
Esempio n. 4
0
        public void SetPropertyValue_Test()
        {
            var dog = new Dog()
            {
                Foo = "test"
            };
            var v1 = LambdaExtensions.SetPropertyValueLambda <Dog, string>(dog, nameof(dog.Foo)).Compile();

            v1.Invoke(dog, "test1");
            Assert.Equal("test1", dog.Foo);

            var cat = new Cat()
            {
                Foo = 1
            };
            var v2 = LambdaExtensions.SetPropertyValueLambda <Cat, int>(cat, nameof(cat.Foo)).Compile();

            v2.Invoke(cat, 2);
            Assert.Equal(2, cat.Foo);

            var fish = new Fish()
            {
                Foo = "test"
            };
            var v3 = LambdaExtensions.SetPropertyValueLambda <Fish, string>(fish, nameof(fish.Foo)).Compile();

            v3.Invoke(fish, "test1");
            Assert.Equal("test1", fish.Foo);

            var persian = new Persian()
            {
                Foo = 1
            };
            var v4 = LambdaExtensions.SetPropertyValueLambda <Persian, int>(persian, nameof(persian.Foo)).Compile();

            v4.Invoke(persian, 2);
            Assert.Equal(2, persian.Foo);
        }
Esempio n. 5
0
        private void OnDateChanged(DateTimeValue x)
        {
            HasValue = true;

            DateTime date = DateTime.Now;

            if (x is PersianDateValue)
            {
                date = Persian.ToDateTime();
            }
            else if (x is GregorianDateValue)
            {
                date = Gregorian.ToDateTime();
            }
            else if (x is HebrewDateValue)
            {
                date = Hebrew.ToDateTime();
            }
            else if (x is HijriDateValue)
            {
                date = Hijri.ToDateTime();
            }
            else if (x is JulianDateValue)
            {
                date = Julian.ToDateTime();
            }
            else if (x is KoreanDateValue)
            {
                date = Korean.ToDateTime();
            }
            else if (x is JapaneseDateValue)
            {
                date = Japanese.ToDateTime();
            }
            else if (x is TaiwanDateValue)
            {
                date = Taiwan.ToDateTime();
            }
            else if (x is KoreanLunisolarDateValue)
            {
                date = KoreanLunisolar.ToDateTime();
            }
            else if (x is JapaneseLunisolarDateValue)
            {
                date = JapaneseLunisolar.ToDateTime();
            }
            else if (x is TaiwanLunisolarDateValue)
            {
                date = TaiwanLunisolar.ToDateTime();
            }
            else if (x is ChineseLunisolarDateValue)
            {
                date = ChineseLunisolar.ToDateTime();
            }

            if (persian != null && !(x is PersianDateValue))
            {
                Persian.DateChanged -= OnDateChanged;
                Persian.Read(date);
            }

            if (gregorian != null && !(x is GregorianDateValue))
            {
                Gregorian.DateChanged -= OnDateChanged;
                Gregorian.Read(date);
            }
            if (julian != null && !(x is JulianDateValue))
            {
                Julian.DateChanged -= OnDateChanged;
                Julian.Read(date);
            }
            if (hebrew != null && !(x is HebrewDateValue))
            {
                Hebrew.DateChanged -= OnDateChanged;
                Hebrew.Read(date);
            }
            if (hijri != null && !(x is HijriDateValue))
            {
                Hijri.DateChanged -= OnDateChanged;
                Hijri.Read(date);
            }
            if (korean != null && !(x is KoreanDateValue))
            {
                Korean.DateChanged -= OnDateChanged;
                Korean.Read(date);
            }
            if (japanese != null && !(x is JapaneseDateValue))
            {
                Japanese.DateChanged -= OnDateChanged;
                Japanese.Read(date);
            }
            if (taiwan != null && !(x is TaiwanDateValue))
            {
                Taiwan.DateChanged -= OnDateChanged;
                Taiwan.Read(date);
            }
            if (koreanLunisolar != null && !(x is KoreanLunisolarDateValue))
            {
                KoreanLunisolar.DateChanged -= OnDateChanged;
                KoreanLunisolar.Read(date);
            }
            if (japaneseLunisolar != null && !(x is JapaneseLunisolarDateValue))
            {
                JapaneseLunisolar.DateChanged -= OnDateChanged;
                JapaneseLunisolar.Read(date);
            }
            if (taiwanLunisolar != null && !(x is TaiwanLunisolarDateValue))
            {
                TaiwanLunisolar.DateChanged -= OnDateChanged;
                TaiwanLunisolar.Read(date);
            }
            if (chineseLunisolar != null && !(x is ChineseLunisolarDateValue))
            {
                ChineseLunisolar.DateChanged -= OnDateChanged;
                ChineseLunisolar.Read(date);
            }

            if (persian != null && !(x is PersianDateValue))
            {
                Persian.DateChanged += OnDateChanged;
            }

            if (gregorian != null && !(x is GregorianDateValue))
            {
                Gregorian.DateChanged += OnDateChanged;
            }

            if (julian != null && !(x is JulianDateValue))
            {
                Julian.DateChanged += OnDateChanged;
            }

            if (hebrew != null && !(x is HebrewDateValue))
            {
                Hebrew.DateChanged += OnDateChanged;
            }

            if (hijri != null && !(x is HijriDateValue))
            {
                Hijri.DateChanged += OnDateChanged;
            }

            if (korean != null && !(x is KoreanDateValue))
            {
                Korean.DateChanged += OnDateChanged;
            }

            if (japanese != null && !(x is JapaneseDateValue))
            {
                Japanese.DateChanged += OnDateChanged;
            }

            if (taiwan != null && !(x is TaiwanDateValue))
            {
                Taiwan.DateChanged += OnDateChanged;
            }

            if (koreanLunisolar != null && !(x is KoreanLunisolarDateValue))
            {
                KoreanLunisolar.DateChanged += OnDateChanged;
            }

            if (japaneseLunisolar != null && !(x is JapaneseLunisolarDateValue))
            {
                JapaneseLunisolar.DateChanged += OnDateChanged;
            }

            if (taiwanLunisolar != null && !(x is TaiwanLunisolarDateValue))
            {
                TaiwanLunisolar.DateChanged += OnDateChanged;
            }

            if (chineseLunisolar != null && !(x is ChineseLunisolarDateValue))
            {
                ChineseLunisolar.DateChanged += OnDateChanged;
            }
        }