Example #1
0
        static void Main(string[] args)
        {
            MyObject  obj1 = new MyObject();
            MyObject2 obj2 = new MyObject2();
            MyObject  obj  = obj1 as MyObject;

            if (obj != null)
            {
                Console.WriteLine("Мы теперь можем обращаться к c obj как MyObject");
            }
            obj = obj2 as MyObject2;
            if (obj != null)
            {
                Console.WriteLine("Мы теперь можем обращаться к c obj как MyObject2");
            }
        }
        public void Optional_Nested_Value_In_Array_Should_Be_Empty()
        {
            var myobject = new MyObject2
            {
                MyValue = "my value"
            };

            var myObjects = new MyObject
            {
                MyObjects = new MyObject[] { } //empty array
            };

            var value =
                new Optional <MyObject>(myObjects)
                .ValueOrDefault(o => o?.MyObjects?.ToList())
                .OptionalAt(0).ValueOrDefault(o => o as MyObject2)
                .ValueOrDefault(o => o?.MyValue)
                .Default(() => "empty")
                .Evaluate();

            Assert.AreEqual("empty", value);
        }
Example #3
0
        static void Main(string[] args)
        {
            // Здесь все понятно
            MyObject  obj1 = new MyObject();
            MyObject2 obj2 = new MyObject2();

            if (obj1 is MyObject)
            {
                Console.WriteLine("obj1 является объектом класса MyObject");
            }
            else
            {
                Console.WriteLine("obj1 не является объектом класса MyObject");
            }
            if (obj2 is MyObject2)
            {
                Console.WriteLine("obj2 является объектом класса MyObject2");
            }
            else
            {
                Console.WriteLine("obj2 не является объектом класса MyObject2");
            }

            // Здесь мы демонстрируем полиморфизм
            // Объекты базовых классов могут ссылаться на объекты производных классов
            MyObject obj3 = new MyObject2();

            if (obj3 is MyObject)
            {
                Console.WriteLine("obj3 является объектом класса MyObject");
            }
            else
            {
                Console.WriteLine("obj3 не является объектом класса MyObject");
            }
        }