Любой способ сократить синтаксис при использовании интерфейса класса в C #? - PullRequest
0 голосов
/ 23 января 2011

Допустим, я создал пользовательский элемент управления Slider, который реализует интерфейс ISlider. У меня есть несколько методов, таких как SetValue ниже, которые должны принимать как типы ISlider, так и стандартный тип элемента управления Slider. Обязан ли я использовать этот тяжелый синтаксис?

    public void SetValue(Object slider, Double value) {
    ISlider ISlider;
    ISlider = slider as ISlider;
    if (ISlider != null)
    {
        ISlider.Value = value;
    }
    else
    {
        ((Slider)slider).Value = value;
    }

1 Ответ

2 голосов
/ 23 января 2011

Поскольку вы не можете сделать так, чтобы элемент управления wpf Slider наследовал от вашего ISlider, используйте перегруженный метод.

public void SetValue(ISlider slider, double value)
{
    slider.Value = value;
}

public void SetValue(Slider slider, double value)
{
    slider.Value = value;
}

Это не красиво, но избавляет вас от головной боли, поскольку вы надеваетене нужно проверять правильность типа объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...