Содержание
про работу и хобби
свойства get и set
виртуальные методы
System.Array
Паттерн проектирования Стратегия
Паттерн проектирования Синглтон

  • про работу и хобби
Выборочные цитаты с википедии:
Работа - деятельность человека, направленная на создание ценностей, либо на удовлетворение потребностей других людей
Хобби - деятельность человека, не несущая особой материальной выгоды, которой регулярно занимаются на досуге, для души.
Важно понимать и видеть цель работы. Хорошо выполненная работа - это работа, выполненная в срок и в соответствии с ожиданиями заказчика.

  • свойства get и set

  • виртуальные методы
Предположим у нас есть класс A
class A
{
    // виртуальный метод
    public virtual void f()
    {
        Console.Out.WriteLine("A.f");
    }
    public void g()
    {
        Console.Out.WriteLine("A.g");
        f();
    }
    public void h()
    {
        Console.Out.WriteLine("A.h");
    }
    public void j()
    {
        Console.Out.WriteLine("A.J");
        h();
    }
}
И его потомок - класс B
class B : A
{
    // переопределение виртуального метода предка
    public override void f()
    {
        // вызов метода f предка
        base.f();
        Console.Out.WriteLine("B.f");
    }
    // переопределение невиртуального метода
    public new void h()
    {
        Console.Out.WriteLine("B.h");
    }
}

Код Результат Комментарий
A a = new A(); a.g(); A.g A.f
B b = new B(); b.g(); A.g A.f B.f т.к. вызывается метод g, унаследованный классом B от предка. Обратите внимание, что метод предка вызывает метод f потомка, т.к. он помечен (override), как переопределяющий виртуальный(virtual) метод предка
B b = new B(); b.f(); A.f B.f
B b = new B(); b.h(); B.h в классе B указано(new), что метод h переопределяет метод h предка
B b = new B(); b.j(); A.j A.h а здесь, метод h не виртуальный, поэтому метод j предка не знает о существовании методов потомка и вызов происходит метода h класса A
A ab = new B(); ab.g(); A.g A.f B.f эта ситуация аналогична второму примеру


  • System.Array
см. http://msdn.microsoft.com/ru-ru/library/system.array.aspx

  • Паттерн проектирования Стратегия

  • Паттерн проектирования Синглтон

Last edited Mar 15, 2012 at 6:01 AM by basph, version 8

Comments

No comments yet.