Hand-made polymorphism
От: Аноним  
Дата: 15.08.06 06:47
Оценка: +1 :))) :))) :))) :)))
public class A
{
    internal void SetValue(double value)
    {
        // some code skipped...
    }
}

public class B : A
{
    new public void SetValue(double value)
    {
        // some code skipped...
        base.SetValue(value);
    }
}

public class C : B
{
    new public void SetValue(double value)
    {
        // some code skipped... 
        base.SetValue(value);
    }
}

class MainClass
{
    public static void SetValue(A a, double value)
    {
        // some code skipped...

        // explicit casting is needed here! the code doesn't work without it!
        if (a is C)
            ((C) a).SetValue(value);
        else if (a is B)
            ((B) a).SetValue(value);
        else
            a.SetValue(value);
    }
}


Смех смехом, а я вот даже не знаю что думать о человеке, который такое пишет Человек реальный, живой. Зарплату получает...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.