在C#中使用类接口时有没有缩短语法的方法?

在C#中使用类接口时有没有缩短语法的方法?,c#,.net,asp.net,wpf,C#,.net,Asp.net,Wpf,假设我创建了一个Slider用户控件,它实现了ISlider接口。我有一些方法,比如下面的SetValue,它应该同时接受ISlider类型和标准的Slider控件类型。我必须使用这种繁重的语法吗?有什么捷径吗 public void SetValue(Object slider, Double value) { ISlider ISlider; ISlider = slider as ISlider; if (ISlider != null) {

假设我创建了一个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;
    }

由于无法使wpf
滑块
控件继承自
ISlider
,请使用重载方法

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

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

这并不漂亮,但可以省去您的麻烦,因为您不必检查对象的类型是否正确。

为什么不使用
滑块
实现
ISlider
?或者,为什么不提供一个
ISlider
的实现,它包装了一个
滑块
,这样您就只需要处理界面了。因为滑块是Microsoft的标准控件。据我所知,我不能用类接口扩展这样的控件,也许我错了?这就是为什么我说“或者,提供一个包含滑块的ISlider实现”。这就是我正在做的,但我的方法仍然应该继续使用标准控件,所以我的问题:)我想你没有抓住我的重点。如果有一个适配器包装了
滑块
并实现了
ISlider
,那么您将把适配器实例传递给您的方法,因此您的方法将借助适配器与
滑块
协同工作。这对OP的代码有什么帮助?因为变量是
object
重载解析不可用。我假设他向方法提供
Slider
ISlider
实例。但是,如果他愿意提供
对象
,您是正确的。考虑到他接受了我的回答,我的假设似乎是正确的。