コード例 #1
0
        public void Deconstruct()
        {
            var person = new PersonP("Bill", "Wagner");

            var(lastName, firstName) = person;
            Equal(lastName, "Bill");
            Equal(firstName, "Wagner");
        }
コード例 #2
0
        public void WithExpression()
        {
            var person  = new PersonP("Bill", "Wagner");
            var person2 = person with {
                FirstName = "Thomas"
            };

            Equal(person2.FirstName, "Thomas");
            Equal(person2.LastName, "Wagner");
            var personClone = person with {
            };

            Equal(person, personClone);
            NotStrictEqual(person, personClone);
        }
コード例 #3
0
        private void Btn_Employee_Add(object sender, RoutedEventArgs e)
        {
            Person person;

            switch (SelectedMain)
            {
            case Firma f:
                person = new PersonF()
                {
                    PartOf = f
                };
                f.Employee.Add((PersonF)person);
                break;

            case Divizia d:
                person = new PersonD()
                {
                    PartOf = d
                };
                d.Employee.Add((PersonD)person);
                break;

            case Projekt p:
                person = new PersonP()
                {
                    PartOf = p
                };
                p.Employee.Add((PersonP)person);
                break;

            case Oddelenie o:
                person = new PersonO()
                {
                    PartOf = o
                };
                o.Employee.Add((PersonO)person);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            _db.SaveChanges();
            _mainWindow.Show(person);
        }
コード例 #4
0
        public static void RunTypeСonversions()
        {
            //Object obj = new Object();
            //Boolean b1 = (obj is Object);
            //проверяем, является ли переменная person объектом типа Employee(нет)

            PersonP person = new PersonP();

            //1 (никогда не генерирует исключения{только null})
            Employee employee = person as Employee;

            if (employee == null)
            {
                Console.WriteLine("No :-(");
            }
            else
            {
                Console.WriteLine("Yes :-)");
            }

            //2
            try
            {
                employee = (Employee)person;
                Console.WriteLine("Yes :-)");
            }
            catch (InvalidCastException ex)
            {
                Console.WriteLine(ex.Message);
            }

            //3 (true/false)
            if (person is Employee)
            {
                employee = (Employee)person;
                Console.WriteLine("Yes :-)");
            }
            else
            {
                Console.WriteLine("преобразование недопустимо");
            }
        }