C# - 自动将方法调用传递给具有相同签名的对象的方法
C# - Automatically pass method call to method of object with same signature
我想在 C# WPF 中创建自定义 Rectangle
,但无法从 Rectangle
继承。所以基本上我要做的是从我需要的 Rectangle
复制方法并将它们传递给我保留在自定义 Rectangle
-class 中的 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 中是否有一种语言功能可以为我执行此操作,因此我不必手写所有内容?
在母语中没有。可能是因为这通常不是你想要的。
封类封是有原因的
在您的示例中,我没有看到任何添加的属性,所以扩展方法是否可行?
我还看到你有一个字段用于每个 属性 和一个字段 _rectangle
。你为什么要那样做。您可以 return _rectangle.width
在 getter.
我想在 C# WPF 中创建自定义 Rectangle
,但无法从 Rectangle
继承。所以基本上我要做的是从我需要的 Rectangle
复制方法并将它们传递给我保留在自定义 Rectangle
-class 中的 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 中是否有一种语言功能可以为我执行此操作,因此我不必手写所有内容?
在母语中没有。可能是因为这通常不是你想要的。
封类封是有原因的
在您的示例中,我没有看到任何添加的属性,所以扩展方法是否可行?
我还看到你有一个字段用于每个 属性 和一个字段 _rectangle
。你为什么要那样做。您可以 return _rectangle.width
在 getter.