C#-自动将方法调用传递给具有相同签名的对象的方法

时间:2018-10-21 13:38:09

标签: c# wpf rectangles

我想在C#WPF中创建自定义Rectangle,但无法从Rectangle继承。因此,基本上我要做的就是从所需的Rectangle复制方法,并将其传递给我保留在自定义Rectangle类中的Rectangle-Object,如下所示:

private double _width;
public double Width
{
    get => _width;
    set
    {
        _width = value;
        _rectangle.Width = _width;
    }
}
private double _height;
public double Height
{
    get => _height;
    set
    {
        _height = value;
        _rectangle.Height = _height;
    }
}
private Brush _stroke;
public Brush Stroke
{
    get => _stroke;
    set
    {
        _stroke = value;
        _rectangle.Stroke = _stroke;
    }
}
private int _strokeThickness;
public int StrokeThickness
{
    get => _strokeThickness;
    set
    {
        _strokeThickness = value;
        _rectangle.StrokeThickness = _strokeThickness;
    }
}
private Brush _fill;
public Brush Fill
{
    get => _fill;
    set
    {
        _fill = value;
        _rectangle.Fill = _fill;
    }
}
private bool _focusable;
public bool Focusable
{
    get => _focusable;
    set
    {
        _focusable = value;
        _rectangle.Focusable = _focusable;
    }
}

C#.NET中是否有语言功能可以帮我做到这一点,所以我不必手工编写所有内容?

1 个答案:

答案 0 :(得分:1)

否用母语没有。可能是因为这通常不是您想要的。

密封的类是有原因密封的。

在您的示例中,我没有看到任何添加的属性,所以也许可以使用扩展方法?

我还看到您为每个属性都有一个字段,还有一个_rectangle字段。你为什么要那样做。您只需在吸气剂中返回_rectangle.width