示例#1
0
    /// <summary>
    /// Точка входа для приложения.
    /// </summary>
    /// <param name="cat">Объект IAnimal для проверки класса Cat</param>
    /// <param name="unknown">Объект IAnimal для проверки работы с Null Object</param>
    /// <remarks>Переменные созданы для проверки приложения. Заместо того, чтобы использовать Null c#, используем NullObject (в случае этого приложения NullAnimal)
    /// Использование такого паттерна проектирования не приведет у ошибке System.NullReferenceException, как в случае использования простого с# null</remarks>
    static void Main()
    {
        IAnimal cat = new Cat();

        cat.MakeSound();

        IAnimal unknown = new NullAnimal(); //<< заменяет: IAnimal unknown = null;

        unknown.MakeSound();
    }
示例#2
0
        private static void Main34()
        {
            IAnimal dog = new Dog();

            dog.MakeSound(); // outputs "Woof!"

            /* Instead of using C# null, use a NullAnimal instance.
             * This example is simplistic but conveys the idea that if a NullAnimal instance is used then the program
             * will never experience a .NET System.NullReferenceException at runtime, unlike if C# null was used.
             */
            IAnimal unknown = new NullAnimal(); //<< replaces: IAnimal unknown = null;

            unknown.MakeSound();                // outputs nothing, but does not throw a runtime exception
        }
示例#3
0
        //Null Object
        public Run NullObject()
        {
            Console.WriteLine("\nNull Object:");

            Animal dog = new Dog();

            dog.MakeSound();                   //

            Animal unknown = new NullAnimal(); //<< замінює: Animal unknown = null;

            unknown.MakeSound();               // нічого не відбувається

            return(this);
        }